文章是作者对tcp/ip协议族的一些看法,借鉴TCP/IP详解卷一的内容,进行总结归纳,并阐述自己的一些看法。
-
TCP/IP协议栈· :
整个协议栈被分为了四层,每一层协议负责不同的功能:链路层:负责处理物理接口的细节,接受发送的都是比特流,链路层主要有三个目的: 1. 为IP模块发送和接收I P数据报;2. 为ARP模块发送ARP请求和接收ARP应答;3.为RARP发送RARP请求和接收RARP应答
网络层:用来处理网络分组在网络中的活动,路由,接受上层tcp/udp报文并封装为IP数据包,网络层吸引也包括ICMP IGMP。所有的 T C P、U D P、I C M P及I G M P数据都以I P数据报格式传输。
传输层:运输层主要为两台主机上的应用程序提供端到端的通信。包含TCP协议和UDP协议。
应用层:即应用层次的协议 例如FTP,DNS , TFTP等。
这张图清晰的标识了各个层次协议。
2.封装与解包
从应用层发送的数据,依次向下被封装为不同的数据包,当通过传输层时,加上了TCP或UDP报头,网络层时添加了IP报头,最后加上以太网报头信息并以比特流发送出去。
等整个比特流到达目的地时,在逐层的解包,到达应用层时,既是发送的内容。
3.包的分用
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各
层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。
等以太网驱动程序接受数据帧后,要知道这个数据帧是什么协议IP ARP 或RARP,IP层解析出传输层数据包时要判断是哪个协议TCP UDP ICMP 或IGMP? 这就以太网和IP首部去指定这个数据包是哪种协议。
这里可以看到wireshark的抓包结果 在以太网首部有个字段type :IPv4 指定这是一个IP数据包, IP首部也有个协议字段:TCP 说明接受到的是一个TCP包。