2021-04-20

网络原理之TCP_IP

1.应用层
我们之前编写完了基本的 java socket ,要知道,我们之前所写的所有代码都在应用层,都是为了完成某项业务,如翻译等。
2.传输层
负责数据能够从发送端传输接收端。
2.1端口号
端口号(Port)标识了一个主机上进行通信的不同的应用程序,在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看)。
端口号划分范围
1.知名端口号:0~1023;
FIP:21;SSH:22;Telent:23;DNS:53;Http:80;Https:443。
2.动态端口号:1024~65535。
注意:
1.一个进程可以bind多个端口号。
2.一个端口号不可以被多个进程bind。
UDP协议:
在这里插入图片描述
·16位UDP长度, 表示整个数据报(UDP首部+UDP数据)的最大长度;
·如果校验和出错, 就会直接丢弃;
UDP特点
·无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;
·不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息;
·面向数据报: 不能够灵活的控制读写数据的次数和数量;
UDP注意事项
UDP整个数据包的理论最大值64(65536)。
UDP超过最大长度
1.在应用层(写程序):拆包和组包【主流】。
2.TCP/IP网络拆包和组包操作【有缺点:一个包丢失,那么整租包就会舍弃】。
TCP协议
TCP全称为 “传输控制协议(Transmission Control Protocol”). 人如其名, 要对数据的传输进行一个详细的控制。
6位标志位:
URG: 紧急指针是否有效
比特科技
ACK: 确认号是否有效
PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走
RST: 对方要求重新建立连接; 我们把携带RST标识的称为复位报文段
SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段
FIN: 通知对方, 本端要关闭了, 我们称携带FIN标识的为结束报文段

  1. 确认应答(保证稳定性最核心的机制)。

  2. 超时重传。
    策略:
    a)以指数形式的时间增长来充发消息。
    b)重试一定次数无果就会强制断开连接。

  3. 连接管理
    3次握手:为了验证收、发能力(双工)。
    4次挥手:为了确保发送端和接收端能够正常关闭。
    CLOSE_WAIT:这是因为接收方式没有显示的调用CLOSE()。
    TIME_WAIT为什么要等待2MSL(最大生存时间)?
    答:1MSL+1MSL(接收端发送消息的最大时间)。

  4. 滑动窗口
    意外1:传递的消息丢失了?
    意外2:ACK丢?
    在这里插入图片描述

  5. 流量控制
    以结果(接收缓冲区的大小)为导向进行数据的传递。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  6. 拥塞控制
    在这里插入图片描述

  7. 延迟应答
    在这里插入图片描述

  8. 捎带应答:是针对于延时应答的性能优化。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值