一、OSI 7层模型与 TCP/IP 4层
- OSI 七层 :

- OSI 7 层与 TCP/IP 4层的对比 :

- 关于会话层 :

二、数据链路层
三、网络层
四、传输层
- TCP协议的三次握手 :
第一次握手 : Client 发送SYN = 1,随机生成seq = j 给Server。
第二次握手 : Server 发送 SYN = 1,随机生成seq = k,ACK = 1(确认号,确认收到消息了),ack number = j+1 给Client(期待下次收到的数据的起始序列号)。
第三次握手 : Client 收到应答之后检查ACK和ack number,如果正确就发送 seq = j + 1,ACK = 1,ack number = k+1给Server。Server收到之后同样检查ACK和ack number,如果正确则连接建立成功。
Q : 为什么需要三次握手 ?
A : 需要三次握手才能确认双方的接收与发送能力是否正常。
- TCP的四次挥手 :
第一次挥手 : Client发送FIN = 1,随机生成seq = u给Server。从此时开始,Client停止给Server发数据。
第二次挥手 : Server发回应答,ACK = 1,ack number = u+1,随机生成seq = v给Client。
发送完应答之后,Server仍然能够给Client发送数据。
第三次挥手 : Server也想结束了,发送FIN = 1,随机生成seq = w,ACK = 1,ack number = u+1给Client。
第四次挥手 : Client发送应答,ACK = 1,ack number = w+1,seq = u+1给Server。
Client在接收到最后一个应答之后,进入到TIME_WAIT状态,即经过时间等待计时器设置的时间2MSL就自动进入到CLOSED状态。
参考资料:
- https://yuanrengu.blog.csdn.net/article/details/102366854?spm=1001.2014.3001.5502
- https://blog.csdn.net/qzcsu/article/details/72861891
- TCP如何保证可靠传输 :
参考资料 :
- 推荐 : https://blog.csdn.net/liuchenxia8/article/details/80428157?spm=1001.2014.3001.5502
ARQ协议和滑动窗口协议 :
参考资料 : https://blog.csdn.net/guoweimelon/article/details/50879588?spm=1001.2014.3001.5502什么是Socket : Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用、以实现进程在网络中通信。
五、应用层
【补充中…】
参考资料:
- OSI 7层 : https://zhuanlan.zhihu.com/p/296670054
版权声明:本文为lucas161543228原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。