从网络协议说起:TCP/IP协议
Posted 技术分享读后感
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从网络协议说起:TCP/IP协议相关的知识,希望对你有一定的参考价值。
网络协议
七层协议模型:指OSI七层协议模型,主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
四层协议模型(TCP/IP协议):应用层(Application)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)。
国际标准:七层协议; 工业标准:四层协议;
层与协议:每一层都是为了完成一种功能。为了实现这些功能,就需要大家都遵守共同的规则(协议)。
csdn
1. 链接层
1.1 定义
单纯的0和1没有任何意义,必须规定解读方式:多少个电信号算一组?每个信号位有何意义?
这就是"链接层"的功能,它在"物理层"的上方,确定了0和1的分组方式。
1.2 链接层:以太网协议
早期的时候,每家公司都有自己的电信号分组方式。逐渐地,一种叫做"以太网"(Ethernet)的协议,占据了主导地位。
以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。
帧
1.3 链接层:MAC地址
上面提到,以太网数据包的"标头"(head),包含了发送者和接受者的信息。那么,发送者和接受者是如何标识呢?
1.4 链接层:arp协议
1.5 链接层:广播
image
2. 网络层
2.1 ip地址
重点解析
思路图
3. 传输层
"传输层"的功能: 就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。
因此,Unix系统就把主机+端口,叫做套接字(socket)。有了它,就可以进行网络应用程序开发了。
3.1 UDP协议
UDP包 = Head + Data
Head: 源端口+目的端口+包总长度+校验值(42字节=8字节,2字节=65536,所以记录端口范围0~65535,整个包最大*大小:65535字节)
Data: 理论上可存放:65535-8=65527字节
UDP: UDP协议(非可靠传输)的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。
UDP包装入IP数据包
TCP包
TCP: 为了解决这个问题,提高网络可靠性,TCP协议就诞生了,实现了可靠性传输。它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。
4. 应用层
这是最高的一层,直接面对用户。它的数据就放在TCP数据包的"数据"部分。因此,现在的以太网的数据包就变成下面这样。
image
拆包-装包 《=》装包-拆包
image.png
整个拆包过程以(用户角度来分析
参考
主要参考互联网协议入门
https://blog.csdn.net/cc1949/article/details/79063439
https://blog.csdn.net/qq_29344757/article/details/78396507
以上是关于从网络协议说起:TCP/IP协议的主要内容,如果未能解决你的问题,请参考以下文章