课 python 爬虫 01

2021-04-21 12:30

阅读:516

  • 国际组织定义了通用的通信协议 TCP/IP协议:(关键:

    TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

    UDP(User Data Protocol,用户数据报协议)是一个简单的面向数据报的运输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传输数据报前不用再客户和服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快。

    TCP三次握手过程


    主机A通过向主机B 发送一个含有同步序列号标志位的数据段(SYN)给主机B ,向主机B 请求建立连接,通过这个数据段,主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我。
    主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我。
    主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:“我已收到回复,我现在要开始传输实际数据了”。


    这样3次握手就完成了,主机A和主机B 就可以传输数据了。

    TCP四次挥手过程


    当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求。
    主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1。
    由B 端再提出反方向的关闭请求,将FIN置1。
    主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束。

    TCP异常情况:

    进程终止: 进程终止会释放文件描述符, 仍然可以发送FIN. 和正常关闭没有什么区别.
    机器重启: 和进程终止的情况相同
    机器掉电/网线断开: 接收端认为连接还在, 一旦接收端有写入操作, 接收端发现连接已经不在了, 就会进行 reset. 即使没有写入操作, TCP自己也内置了一个保活定时器, 会定期询问对方方是否还在. 如果对方不在, 也会把连接释放


  • 评论


    亲,登录后才可以留言!