TCP/IP协议整理

1.客户端发送SYN包请求建立TCP链接,SYN包中携带了初始化的sequence num,它不能携带数据,但是,会消耗一个序列号.
2.不携带数据的ACK报文则不会消耗序列号.
3.半链接是服务器在收到客户端发送的SYN包之后,双方还没有建立全连接的状态.服务器会将此连接存放到半连接队列内.
4.服务器在发送SYN-ACK报文后,会等待客户端发送ACK报文.如果未收到客户端的ACK包,服务器会等待一段时间重新发送ACK包.如果收到客户端的ACK包,则将此连接从半连接队列中删除,存放到全连接队列内.
5.服务器重传SYN-ACK包的次数超过系统规定的最大值后,停止重传,同时将其从半连接队列中删除.每次等待的时间通常会以指数增长.
6.服务器和客户端都可以主动发起断开连接的操作.如果客户端主动发起断开连接的操作,会发送一个fin包,同时进入FIN_WAIT1状态,等待服务器的ACK包.服务器发送的ACK报文,会在收到的FIN包的seq_num基础上加1,也就是说FIN包会占用一个序列号.同时服务器会进入CLOSE_WAIT状态.TCP连接处于半连接状态.
7.客户端在收到服务器的ACK包之后,会从FIN_WAIT1进入FIN_WAIT2,等待服务器发送FIN包.当服务器主动向断开连接时,会发送FIN包,同时进入LAST_ACK状态.客户端在收到FIN包之后,会发送ACK报文,进入TIME_WAIT状态.
8.RTT(ROUND TRIP TIME)即数据包从一端发送到另一端,然后再从另一端返回本端的时间,也就是数据包往返需要的时间.RTO(RETRANSMITTION TIMEOUT)超时重传的时间.
9.快速重传机制是当本端收到连续三个相同的ACK报文时,会重新发送相应的报文.快速重传解决了超时时间的问题,即避免了超时时间到来时才重传数据.
10.SACK(selective acknowledgement)选择性确认,它借助于TCP头部的option选项,将已经接收到的数据段存放到里面,发送方根据这些信息决定重传哪些数据.如果要是用选择性确认,那么收发双方都必须支持.
11.duplicate SACK(D-SACK)它使用SACK的功能告诉发送方哪些数据被重复接收了.
12.接收端通过TCP头部中的windows大小告诉发送端本端还有多少缓冲区可以存放数据.如果发送端发送的数据超过了缓冲区的大小,会导致接收端处理不过来.
13.在资料中看到除了最初建立连接时的SYN包,ACK位必须置1???
14.TCP协议中的流量控制的目的是为了避免发送方发送的数据填满接收端的数据缓存,导致数据丢失的情况,但是其无法知道网络中的情况.
15.一般情况下,计算机处于一个共享的网络当中,网络中的主机可能会因为其他主机的通信导致网络拥堵,从而增加了网络中发包延时,甚至出现丢包,触发TCP重传,进而增加网络中的拥塞状况.
16.为了解决网络拥塞的状况,TCP协议增加了拥塞控制,避免发送端发送的数据充斥整个网络,引入了拥塞窗口.它发送端维护的一个状态变量,会根据网络中的拥塞状况动态变化.
17.只要在协议规定的时间内,发送的数据包没有收到对应的ACK报文,出现了超时重传便认为网络拥塞,此时便会缩小拥塞窗口.解决网络拥塞常用的方法有慢启动、拥塞避免、拥塞发生、快速回复.
18.慢启动的方法是每收到一个ACK,拥塞窗口的大小乘以2.
19.selective acknowledgement(SACK)选择性确认技术,只是对丢失的包进行重传,而不用发送所有未被确认的报文.第一个options中的sequence num应该比acknowledge sequence num大**.数据接收端应该包含尽可能多的SACK block**,需要说明的是最大block数还可能不足以记录接收队列中存储的block.
20.TCP/IP中ack报文不消耗序列号,一般不会携带数据;不携带数据的时候,对端收到ack报文之后,则期望seq_num不会增加.
21.TCP/IP中初始化的sequence_num会每4us加1.TCP连接时使用2个IP地址和2个端口地址构成的4元组,即便是同一个连接也会出现不同的实例.
22.TCP重传分为超时重传和快速重传.

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值