1.1 IP协议

1.版本
2.头长度,单位为4,最长15*4=60字节。
3.服务类型。(不用)
4.总长度,16位,最多65535字节。
5.封包标识,每发送一个ip包,此值+1。
6.标志与片偏移。标志:共3位,第一位不用。第二位标识是否分片。第三位标识是否最后一片。
7.存活时间TTL。
8.高级协议。ICMP、TCP、UDP等。
9.校验和,只校验头部。
10.11.IP地址
12.选项与填充。安全和处理限制、路径记录、宽松源站路由、严格源站路由。
2.传输层
2.1 TCP
2.1.1特点
- 面向连接
- 点对点
- 可靠
- 全双工
- 面向字节流
2.1.2 TCP如何保证可靠传输
- 确认和超时重传
- 数据合理分片和排序
- 流量控制
- 拥塞控制
- 数据校验
2.1.3 TCP首部

-
1.2.端口号加ip报头的ip地址可以唯一确定一个TCP连接。
-
3.序号。报文第一个数据的序号。
-
4.确认号。希望收到的下一个序号。
-
5.数据偏移。为报头长度。
-
6.状态控制码。ACK SYN FIN。
-
7.窗口。16位,表示窗口容量。
-
8.校验和。TCP段校验和。
-
9.紧急指针。表示紧急数据最后一个字节的序号。
2.1.4 滑动窗口
作用:让接收方来得及接收。
TCP创建连接的初始,B会告诉A自己的窗口大小。
快重传:收到3个冗余的ACK,重传丢失的数据。
2.1.5 拥塞控制
作用:防止注入过多的数据到网络中。
阈值ssthresh 窗口cwnd
慢开始:若cwnd < ssthresh, cwnd=cwnd*2。
若超时,ssthresh=cwnd/2,cwnd=1。
拥塞避免:若cwnd >= ssthresh,且正常运转,cwnd=cwnd+1
快恢复:3ack时,ssthresh=cwnd=cwnd/2。
2.1.6 TCP连接

为什么要3次握手。
- 双方都要确认对方收到了自己发送的序列号。
- 防止失效的连接请求传送到服务器端,因此产生错误。
2.1.7 TCP断开

为什么要4次挥手
- 双方均确认对方收到自己的FIN请求,即收到对方的ACK信号。
- TCP连接时,第二次握手中,同时发送了ACK和SYN。而TCP断开时则不能同时发送ACK和FIN。因为可能还有数据需要传输。等数据传输完后才会发送FIN请求。
- 为什么TIME-WAIT要等待2MSL。
-
- 保证客户端发送的最后一个ACK能够到达服务器。若未达到可以进行重传,并重新计时。
-
- 防止已经失效的连接请求报文段出现在下次连接。 2MSL可使本连接持续的时间内产生的报文从网络中消失。




近期评论