![](https://img.haomeiwen.com/i7423808/7df7be2cdc2892db.png)
OSI 七层协议
![](https://img.haomeiwen.com/i7423808/d612eb867e9308ca.png)
TCP/IP 四层协议
![](https://img.haomeiwen.com/i7423808/f92ecb1651d2303f.png)
IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输
![](https://img.haomeiwen.com/i7423808/07dfebe4438590cf.png)
![](https://img.haomeiwen.com/i7423808/e76ec9af54d8abde.png)
- 链路层(MAC地址)
对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方
- 首部固定为14个字节,包含了目标MAC地址、源MAC地址和类型
- 数据最短为46个字节,最长为1500个字节,如果需要传输的数据很长,就必须分割成多个帧进行发送
- 尾部固定为4个字节,表示数据帧校验序列,用于确定数据包在传输过程中是否损坏
- IP层(IP地址)
定义网络地址,区分网段,子网内MAC寻址,对于不同子网的数据包进行路由
首部长度为20个字节,主要包含了目标IP地址和源IP地址
数据部分的最大长度为65515字节
- IP协议 解决发送者如何知道接收者和自己同属一个子网的问题,通过IP地址和umask进行AND后发送者和接受者地址相等判断
- ARP协议 解决发送者如何知道接收者的MAC地址的问题,ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,进行广播,服务端对比自己的IP地址,如果相同就符合的返回自己的MAC地址,否则丢弃数据包
- 路由协议 解决如果接收者和自己不在同一个子网,数据包如何发给对方的问题,在ARP协议执行之前先执行路由协议,通过IP协议判断2台主机是否在一个网段,如果不在,转发给网段的网关(路由器)进行转发
- 传输层(端口)
定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性
首部长度为8个字节,主要包括源端口和目标端口
数据最大为65527个字节,整个数据包的长度最大可达到65535个字节。 - 应用层
定义数据格式并按照对应的格式解读数据
网友评论