数据链路层和网络层

32位IPv4地址分为五类:

数据链路层主要有以下作用:

1,为IP模块发送和接收IP数据报。

2,为ARP模块发送ARP请求和接收ARP应答。

3,为RARP发送RARP请求和接收RARP应答。


TCP/IP支持多种不同的链路层协议,根据物理层的不同,包含以太网,令牌环网,FDDI(光纤分布式数据接口)及RS-232串行线路等。


以太网:

因为历史的原因,以太网有两个略有不同的以太网标准:RFC894(DEC,intel,Xerox发布,常用)和RFC1042(IEEE发布的 IEEE802)

所以跟以太网连接的主机需要支持以下标准:

1,必须能发送和接受RFC894格式的数据。

2,应该能接收与RFC894混合的RFC1042格式数据。

3,发送RFC1042格式的数据不是必须的,如果两个都可以支持,那么发送格式必须是可设置的,且默认必须是RFC894

两种帧封装格式如下:


RFC894和RFC1042都采用6字节(48bit)的目的地址和源地址(硬件地址),ARP和RARP负责对IP地址和硬件地址进行互相映射。


串行线路IP(SLIP):

SLIP是一种在串行线路上对IP数据报进行封装的简单格式(RFC1055)。


CSLIP(压缩的串行线路串行线路

因为串行线路的速率低,SLIP主要是采用压缩的方式提高传输效率。


点对点协议(PPP):

PPP是对SLIP的一个提高版本,主要包括以下3个部分:

1,既支持数据位8位和无奇偶校验的异步模式,还支持面向bit的同步链接。

2,链路控制协议,用于建立,配置及测试数据链路,它允许通信双方进行协商,以确定不同的选项。

3,正对不同网络层协议的网络控制协议体系。


换回接口:

环回接口允许运行在同一台主机上的客户程序和服务器通过TCP/IP进行通信。

根据惯例,大多数系统将127.0.0.1分配给这个接口,并命名为localhost。

一个传给环回接口的数据报不能在任何网络上出现。

其工作模式与正常的网络通信类似,也是通过传输层到达网络层,只是当IP数据报离开网络时又回到自己,然后回给传输层。

具体如下图:

1,传给环回地址的任何数据均作为IP输入。

2,传给广播地址或多播地址的数据报均需复制一份传给环回接口(广播和多播也包含主机自己),然后再送到以太网上。

3,任何传给该主机IP地址的数据均送到环回接口。


最大传输单元MTU:

RFC894和RFC1042对数据帧的长度都有一个限制,数据链路层的这个特性就是MTU。

不同类似的网络大多数有一个上限,如果IP报文大于链路层MTU,IP层需要进行分片(fragmentation),将数据分为若干小于MTU的片。

路径MTU指两个对端通信的路径的最大MTU,很明显这个MTU应该取决于路径中最小的MTU

同时,路径MTU不一定是个常数,这取决选路是经过的路由,有可能来回的路径不一致。


网际协议IP:

IP是TCP/IP协议族中最为核心的协议,所有的TCP,UDP,ICMP,IGMP都以IP数据报格式传输。

IP数据报格式如下图,固定IP首部长度为20个字节,可能含有数量不定的选项字段。


首部长度指首部占有的字节数,包含选项。

服务类型(TOS)包含一个3bit的优先权子字段(先已忽略),4bit的TOS子字段(最小时延、最大吞吐量、最高可靠性、最小费用分别占一位),1一个保留位(必须置0)。

总长度字段指真个IP数据报的长度,单位为字节。该字段为16bit,故IP数据报最大65535。

标识字段唯一的标识主机发送的每一份数据报,发一份加一。

TTL(time-to-live)指定了数据报的生存时间,也就设置了数据报最多可以经过的路由器数,因为每经过一个路由器,TTL减一

首部检验和字段是根据IP首部计算的检验和码,它不对首部后面的数据进行计算,这与ICMP/IGMP/UDP/TCP不一样(检验和同时覆盖首部和数据)。

检验和计算方法:将整个首部看做16bit的字,对每个16bit进行二进制反码求和。

选项字段一直都是以32bit作为界限,在必要的时候插入值为0的填充字节


IP路由选择:

在一般的体制中,IP可以从TCP/UDP/ICMP/IGMP接收数据报或者从一个网络接口接受数据报并发送。

IP层在内存中有一个路由表,路由表中的每一项都包含下面这些信息:

1,目的IP地址,它既可以是一个完整的主机地址,也可以是一个网络地址,由标志字段指定。

2,下一跳路由器的IP地址,或者直连的网络IP地址。

3,标志,分别标识目的IP地址是网络地址还是主机地址和下一站路由器是真正的下一站路由器还是直连接口。

4,为数据报的传输指定一个网络接口。


当需要发送一分数据报时,它都搜索路由表表一次,当数据报来至网络接口,首先确认目的IP是否本机或IP广播地址,

如是,依据首部协议字段指定的协议模块去处理。 

如不是以上目的地址,且IP作为路由器功能,对数据进行转发,如本机不作为路由器则丢弃数据报

IP路由选择主要遵循以下步骤(如都不成功,那么该数据报就不能被传送):

1,搜索路由表,寻找能与目的IP地址完全匹配的表项(网络号和主机号都要匹配)。找到则直接通过该表项指定的下一跳路由器或者直连网口发送报文。

2,搜索路由表,寻找能与目的网络号相匹配的表目,找到将报文通过表目指定的下一跳路由或直连网口发出。

3,搜索路由表,寻找标为“默认(default)”的表目,找到发送给该表项指定的下一跳路由器。


子网寻址和子网掩码:

RFC950规定所有主机都要支持子网编址,不是仅仅把IP地址看做单纯的一个网络号和一个主机号,进而将主机号分为一个主机号和一个子网号。

这是因为A类B类IP地址为主机号分配了太多空间,可分别容纳的主机数位2^24 - 2和2^16 - 2(去掉两个全0全1的主机号)。


子网掩码用于确定有多少bit用于子网号以及多少bit用于主机号

子网掩码是一个32bit的值,其中值为1的bit留给网络号和子网号,为0的bit留给主机号





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据链路层网络层是计算机网络中的两个关键层次,它们在网络通信中具有不同的功能和职责。 数据链路层(Data Link Layer): - 数据链路层位于网络体系结构的第二层,直接建立在物理层之上。 - 数据链路层负责在物理链路上可靠地传输数据帧。它通过提供错误检测、纠错、流量控制和访问控制等机制来确保数据的可靠传输。 - 数据链路层还负责帧的封装和解封装,将网络层传递的数据分为适合在物理链路上传输的帧。 - 典型的数据链路层协议有以太网(Ethernet)、Wi-Fi、PPP(Point-to-Point Protocol)等。 网络层(Network Layer): - 网络层位于网络体系结构的第三层,建立在数据链路层之上。 - 网络层负责在不同的网络之间进行数据路由和转发,实现端到端的数据传输。 - 网络层将传输的数据分割成较小的数据,并为每个数据添加目标地址信息,以便在网络中进行准确传递。 - 网络层使用路由选择算法来确定最佳路径,并处理跨网络的数据转发。 - 典型的网络层协议有IP(Internet Protocol)、ICMP(Internet Control Message Protocol)等。 总结: 数据链路层关注的是在物理链路上的可靠数据传输,而网络层关注的是在不同网络之间的数据路由和转发。数据链路层负责帧的封装和解封装,提供可靠性和访问控制等机制。而网络层负责数据的分割、目标地址的添加、路由选择和跨网络的数据转发。两者共同协作,实现了网络通信的可靠性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值