【免费】全网独家:Socket网络基础之TCP/IP



TCP/IP协议族体系结构和主要协议

在这里插入图片描述

下层协议通过封装为上层协议提供相应的接口,通过头部信息中的类型字段实现分用。

ARP协议工作原理

主机向自己所在的网络广播一个ARP请求,目标地址会回应一个ARP应答,包含自己的物理地址。对于经常访问或最近访问的IP会放入ARP高速缓存。

ICMP:

一类是差错报文,用来回应网络错误。一类是查询报文,用来查询网络信息。

ICMP重定向报文:断定引起重定向的IP数据报应该使用哪个路由器来转发,并且以此来更新路由表。

IPV4头部信息

在这里插入图片描述

头部长度:有几个32bit,4位最多表示15,所以头部最多是60.

标识:同一个数据报的所有分片的标识相同。

片偏移:分片相对于原始IP数据报的开始。

头部校验和:CRC检验IP头部是否损坏。

IP模块工作流程

对头部做CRC校验。
查看是否设置了源站路选项(如果是则调用数据报转发子模块来处理)
查看是否发送给本机(是,选择上一层分用的协议。否,调用数据报转发子模块处理)

TCP协议

特点:面向连接,字节流,可靠传输。(tcp连接是全双工的)

TCP头部信息

在这里插入图片描述

32位序号:初始化为ISN,后续的序号为ISN+携带数据第一个字节的偏移

32位确认号:基于TCP的可靠链接,每次收到数据都需要确认。

4位头部长度:最大15个4字节,也就是60

6位标识:

URG:紧急指针是否有效。

ACK:携带ACK的保文为确认报文

PSH:接收端应立即从缓冲区读走数据

RST:复位报文

SYN:同步报文(请求连接)

FIN:结束报文段

窗口大小:缓冲区还能容纳多少字节的数据。

选项:

kind=2 最大报文段长度选项一般是1460(1500 - 40)

kind=3 窗口扩大因子(只能出现在同步报文中)

kind=4 选择性确认

kind=5 是kind=4的补充,标记了不连续的数据块

kind=8 精确计算通信双方的回路时间。

TCP三次握手

在这里插入图片描述

连接超时

具有相同的序号值,发送的时间间隔:1s 2s 4s 8s 16s五次重传,全部失败后放弃连接并通知。

TCP四次挥手

在这里插入图片描述

TCP状态转移图

在这里插入图片描述

connect失败原因:

connect的目标端口不存在
connect在超时时间内未收到服务器的确认报文

TIME_WAIT状态

可靠终止TCP连接
保证让迟来的TCP报文有足够的时间被识别并丢弃(2*MSL)

复位报文段

访问不存在的端口
异常终止链接(SO_LINGER)
处理半打开连接

延迟确认(服务器端)

不马上确认上次收到的数据,在一段延迟后查看是否有数据要发送,与确认报文一起发送,减少TCP报文的数量。

超时重传

与连接超时一样,一共执行5次,五次均失败的情况下有ARP和IP接管(发送广播查询ip)。

拥塞控制

SWND(一次性写入的数据)太小,会导致网络延迟。太大,会导致网络拥塞,频繁丢包。

判断拥塞发生的方法:
  1. 传输超时(TCP重传定时器溢出)
  2. 接收到重复的确认报文段

慢启动和拥塞避免(通过RTT时间判断):CWND从1开始以次方的方式增加,知道达到ssthresh的值,每次收到确认加一。一旦发生拥塞,ssthresh的值减半,CWND重新从1开始次方增加。

快速重传和快速恢复(每收到一个无序报文就立即发出重新确认):快重传因为收到了三个重新确认报文,则不必等他超时。快速恢复时ssthresh减半,CWND减半并每次收到确认后加1。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值