IP协议基础

本文深入解析了网络通信中的链路层与数据封装过程,详细介绍了数据链路、帧的概念及点对点通信流程。同时,对IP协议进行了全面解读,涵盖了其非可靠、无连接特性,以及数据报字段的具体作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值