TCP
一.特性的实现
1.含义:TCP是网络传输中传输层的一种协议类型。
2.特点:面向连接、传输可靠、面向字节流。
3.应用范围:对安全性有要求的网络通信--文件的传输等
4.过程示意:
5.保活机制:
如果某一端突然异常退出:那么默认情况下,通信双方要是7200s没有数往来,则每间隔75s回想对方发送一个保活探测数据报,要求其进行响应:
(1)若得到响应--表示连接正常
(2)连续9次没有得到响应--则认为连接已断开,则将socket的状态置为CLOSE_WAIT
二.可靠传输
1.含义:怎么确保传输是可靠的--只要自己的请求得到了对方的响应就可以认为是可靠的;
但是如果过程中发送的每一条数据都要得到对方的回应再发送下一条数据,效率实在太低。
滑动窗口机制:对流量进行控制
快速重传机制:防止丢包
拥塞控制:慢启动、快增长--为了防止丢包+提高效率
捎带应答机制:收到请求后,如果接收端也要给发送端发送数据,九江确认回复ACK报文与要发送的数据打包一块发送给对端。
延迟应答机制:由于立即回复ACK,会导致窗口变小,从而流量降低,导致传输速度降低;故采取延迟应答,尽可能保证窗口大。
三.面向字节流
1.含义:tcp调用接口发送数据,是将数据放到发送缓冲区中,操作系统选择合适的时机取出合适的大小(MSS),将数据发送到对端;
2.特点:对于recv/send接口所发送/接收的数据大小,没有大小的限制,传输是灵活的
3.问题:由于tcp对数据边界的不敏感会导致数据的粘包问题,为解决粘包问题
(1)以特殊字符间隔
(2)数据定长---浪费空间/空间不够
就是指每次发送的数据长度都是一定的,假定100B,如果数据不够100B那么就进行填补;
如果数据超过100B,就进行增容。
(3)在应用层协议头中定义数据长度