IP协议基础

1.链路层

链路(物理链路):从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点。

数据链路(逻辑链路):把实现通信协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的是用网络适配器来实现这些协议和软件。一般适配器都包括了数据链路层和物理层这两层功能。

:数据链路层的协议数据单元。

数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。

点对点信道的数据链路层,在进行通信时的主要步骤如下:

1.结点A的数据链路层把网络层交下来的IP数据报添加到首部和尾部封装成帧。

2.结点A把封装好的帧发送给结点B的数据链路层。

3.若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报,上交给上面的网络层,否则则丢弃这个帧。

2.数据封装

链路层再接收到网络层的数据时,会进行封装。封装即每一层接收上层数据时,都会添加自己特定的头部数据(有时也会有尾部数据)。

如图,应用层到传输层时,应用数据的基础上添加了TCP的header,就变成了TCP segment 。

            传输层到网络层时,就在TCP segment的基础上添加了IP的header,整个数据变成了IP datagram。

            网络层到链路层时,就在IP datagram的基础上添加了Ethnet header和Ethnet triler数据,变成了Ethernet frame。

3.IP协议

IP协议提供非可靠,无连接的数据报传输服务。

非可靠:这意味着它并不保证所要传输的数据一定会到达目的地。(当路由出错导致某个数据传输失败时,会丢掉此数据并发回一个ICMP信息回去。可靠性需要由更上层的协议提供,如TCP协议)。

无连接:这代表 IP datagram(数据报)在传输中没有连接起来,他们是一块一块各自分开的,分开独立处理。(比如需要向某个地方发送两个数据报A、B,他们两个有可能会经由不同的路径去到达目的地,有可能B要比A先到达)。

数据报字段如图

4-bit version:是IP协议的版本,当前版本是4。

4-bit header length:代表IP header的长度。

8-bit type of service(TOS):服务类型,包括:最小延时,最大传输,最大可靠性,最小消耗等。

16-bit total length(in bytes):整个IP数据报的字节数。

16-bit identification:识别号,主机每发送一次都会自动增加。

3-bit flags:标记位,用于标记是否被分段。

13-bit fragment offset :分段号。

8-bit time for live(TTL):生存时间。

8-bit protocol:代表此IP数据所运输的是来自哪个上层协议的数据,如TCP、UDP等。

16-bit header checksum:用于校验header数据。

32-bit source IP address:源IP地址。

32-bit detination IP address:目标IP地址

原文地址:https://github.com/alwxkxk/soft-and-hard

猜你喜欢

转载自blog.csdn.net/niuyuce/article/details/84893891