TCP/IP数据传输过程
1.1封装
从应用层到达数据链路层,每一层都会对数据进行一次封装,并且加上自己的头部

数据包的封装
应用程序使用send/write函数会把数据写入与TCP连接应对的TCP内核发送缓存区中。然后TCP会调用IP模块所提供的服务把TCP头部信息和TCP发送缓冲区中的数据封装在一起。
UDP的数据也是类似,但是UDP不会保存数据的副本,如果数据丢失了,应用程序则需要重新把数据从用户空间拷贝到UDP内核发送缓冲区中
数据经过网络层后封装成为IP数据包、最终经过数据链路层后封装成的数据成为帧。不同传输媒介有不同的帧类型。

以太网帧的格式
1.2分用
当数据封装好了以后,则进行传输,当到达目的地时,则会由底向上传递,各层依次去处理属于该层要负责的数据。

数据处理的流程
因为ARP、IP、RARP都是使用帧来传数据,所以帧头的部分需要提供某个字段来区分它们。
同样的ICMP、TCP、UDP等协议都使用IP协议,所以IP数据包的头部也要采用16位的协议字段来区分它们。
TCP、UDP的数据包则通过16位的端口号来区别上层的应用程序,比如Http使用80端口。