赞
踩
Q:为什么需要那么多头部,比如TCP然后还需要IP头部,去掉不行吗?
综述:
下面正在自顶向下来分析:
一个点是,检验和checksum,检验出错直接丢,避免无意义的传输
来自应用层的数据包需要让下层知道,“我”是使用什么协议的。
因此应用层需要携带应用层协议标识或者描述的头部信息
还需要知道数据的长度
传输层实现的端到端的传输
因此,传输层要知道发送方和接收方的端口,即源端口和目的端口
数据的长度
数据校验和:出错直接丢,避免无意义的传输?❓
以IP协议为例
IP协议并 不保证 数据的可靠传输,因此在网络层之上(传输层)通过TCP协议来实现
(由此考虑,UDP在传输层并不能保证数据的可靠传输,因此可以在应用层上结合应用层协议来实现数据可靠传输)
实现主机与主机之间的数据传输
因此需要IP地址:源IP和目的IP
Version:网络层有两个主要的IP协议,IPv4/IPv6,因此需要标识所使用的协议
头部信息有一个option项,属于开放的空间,长度由用户定义,因此需要一个头部长度以及当前数据报的总长度(数据+头)
网络层IP协议会对报文进行分组转发,即进行分组,那么就需要知道该数据报原来来自哪个数据报packetID,是否进行了分组flag,以及组偏移(fragment offset,表示组号)
Type of service: 数据报的重要程度??
数据的导航
数据单位为帧
在物理层设备上传输不同于在网络上传输,因为在物理层上传输的是比特流(即01010101)之类的高低电平信号
如果数据一个一个发,发一个停一下再发一个,效率会十分低(如 0101 ---- 1010 ---- …………)
因此在数据链路层上给他加了一个帧定界符,标识不同数据帧的边界,因此有头有尾,从而可以达到连续发(如 01011010…………)
在链路层上数据导航依靠MAC地址,
因此 需要源MAC地址、目的MAC地址(下一跳)
此外,还需要类型说明字段
(来自网络层有不同的数据报类型,如IP数据报,ARP请求数据报,RARP请求数据报等)
不同类型的数据报传输的目的不一样,加的头尾不一样
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。