TCP/IP协议分层模型

来源:互联网 发布:西门子1200plc编程 编辑:程序博客网 时间:2024/05/21 01:48

前面介绍了OSI参考模型的划分,但是那只是理想化分的协议分层。在实际应用中,这种协议的划分有些不规范,而且每层的名称可能叫法不大一样。

Paste_Image.png
Paste_Image.png

1.硬件层
这一层的概念有点宽泛,只要是通过电缆连接的都属于这一层
2.网络接口层:驱动程序,就是我们电脑装的各种驱动,驱动的作用是连接操作系统和硬件设备
3.互联网层:
这时候可以将底层物理层的传输忽略掉,两台主机之间是通过互联网层传递数据的。这时候用到了三种协议(IP,ARP,ICMP)。
IP协议:用于传输数据包,但是不可靠,当数据包没有到达主机时,IP协议不会重发
ICMP协议:用于发送异常,当数据包未能到达主机时
ARP:用于解析物理地址
4.传输层:建立连接通信
TCP:面向有链接的传输协议,能够保证数据可达,能处理异常情况,但是收发包次数太多不利于音视频会议
UDP:面向无连接传输协议,不可保证数据可达,应用广泛
5.应用层
这里的应用层已经包含了表示层和会话层的功能,这里的协议比较多针对不同的应用不同的传输内容会有不同的协议,常用的HTTP协议适用于浏览器和服务器之间的通信传输内容主要为HTML
下面详细介绍一下数据包的传送和接收

Paste_Image.png
Paste_Image.png

数据包的首部都会包含发送目标地址和协议相关信息
1.发送数据包:
应用程序处理:这里包括编码和建立连接,也就是表示层的功能
TCP模块处理:建立连接,会话层功能。在数据前面加上TCP首部(包括了源端口号和目标端口号)
IP模处理:加上IP首部(IP地址)
网络接口处理:加上以太网首部(包含MAC地址和以太网协议信息)

Paste_Image.png
Paste_Image.png

2.经过数据链路层的包

Paste_Image.png
Paste_Image.png

每个包的首部都包含两个信息一个是接收端和发送端的地址一个是上一层的协议类型
3.数据包的接受处理
网络接口层:先通过Mac地址判断是不是给自己的包,如果是就通过以太网的首部分析它的上一层是什么协议然后交给相应的程序进行解析
IP模块处理:
通过IP地址判断是否是给自己的包,然后分析上一层协议,交给程序处理
TCP模块:
先校验数据是否准确,然后检查序号,交给相应的应用程序
应用程序:正确接收以后会发送回执到发送端,反之发送异常。
感兴趣的同学可以关注一下我的微信公众号,或者微信搜索 开发 Android的小学生

qrcode_for_gh_c686d73be7e1_430.jpg
qrcode_for_gh_c686d73be7e1_430.jpg