1.模型
网络TCP/IP模型
TCP/IP通信过程
2.数据包封装
封装是分层联网协议的一个重要原则。
传输层及其以下的机制由内核(内核中的TCP/IP协议栈)提供,应用层由用户进程提供应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装
(Encapsulation)。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数
据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目
的主机后每层协议再解包相应的首部,最后将应用层数据交给应用程序处理。
以太网帧格式
此处的目的地址和源地址是MAC地址(即网卡的硬件地址,独一无二),长度是48位占6个字节是在网卡出厂时固化的。
以太网帧中的数据长度规定最小46字节,最大1500字节,ARP和RARP数据包的长度不够
46字节,要在后面补填充位。最大值1500称为以太网的最大传输单元(MTU),不同的网络
类型有不同的MTU,如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路
的MTU了,则需要对数据包进行分片(fragmentation)。
!ARP数据包格式
在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机
的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的
硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议
就起到这个作用。
源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多
少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示
广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应
答数据包给源主机,将自己的硬件地址填写在应答包