链路层

来源:互联网 发布:linux系统漏洞修复 编辑:程序博客网 时间:2024/05/29 03:41

1. 概述

分用:目的主机收到一个以太网数据时,数据开始从底层上升,同时去掉各层协议加上的报文首部.每层协议盒都要检查首部中的报文标识,以确定上层协议.这个过程叫做分用.

1.端口号

端口号用于在同一台主机上分辨不同的应用程序或者进程.1~1023号端口是知名服务端口,由IANA进行分配.需要注意的是,同一个端口,可以被TCP和UDP同时使用.因为不同协议下的端口是可以通过协议类型来分辨出来的.

2.互联网

概念: 互相连接的网络,每个网络一个公网IP.需要区分网络与互联网概念上的区别.

2.链路层

1. 链路层三个目的
  1. 为IP模块服务,发送IP数据;
  2. 为ARP模块发送ARP请求和接收ARP应答;
  3. 为RARP模块发送RARP请求和接收RARP应答.

链路层的协议取决于硬件,主要有以太网,令牌环网,FDDI,以及RS-232串行线路等.
下面总结两个串行接口链路层协议SLIP和PPP(点对点)以及以太网链路层协议.

2.以太网链路层

以太网采用的是CSMA/CD技术,速率是10Mb/s,地址为48bit,也就是我们接触较多的MAC地址的位数.以太网IP数据报的标准定义在RFC849中.
IEEE在其802.3标准集中针对CSMA/CD技术的网络做了标准化,虽然以太网采用的也是CSMA/CD技术,但是其帧格式与802.3and802.2定义的帧格式却不相同.
ARP和RARP协议对32bit的IP地址与48bit的MAC地址进行映射.
关于各标准定义的链路层的封装格式:
图片来自TCP/IP详解卷1

另外,802.3要求数据至少38B,但以太网要求至少46个字节.

3.SLIP协议

该协议在串行线路上对IP数据进行封装,以END(0xc0)开头并结尾.

在数据中出现的0xc0用dbdc来代替.db用dbdd来代替.

这样经过SLIP协议封装的IP数据就在原来基础上增加了4个字节.

关于SLIP协议的缺陷:

  1. 多出的4个字节中没有协议协商,只支持IP协议.通信时必须知道对方的IP地址.

    note:例如,主机发送SLIP数据到了路由器,路由器解封提取IP数据里的IP地址.根据IP地址进行路由,假如主机不知道目的主机的 IP,那么就无法进行路由.通信无法继续.稍后我们可以看到,后面有其他的协议可以支持动态获取目的主机的IP地址.

  2. 没有校验数据,需要依靠其它层进行数据的校验.

CSLIP:压缩形式的SLIP.平时传送数据的时候,为了传送一个字节,也需要20个字节的IP首部和TCP首部.CSLIP可以把40个字节压缩到3-5个字节.

4.PPP协议

PPP包括以下三部分:

  1. 既可以面向比特,也可以面向字节.
  2. 具有测试配置数据链路的链路控制协议LCP.允许通信双方进行协商.
  3. 针对不同网络层的协议,可以进行协商.例如IP NCP可以实现对报文首部是否进行压缩的协商.

帧格式如下:
来自tcpip详解卷1

5.MTU

MTU是最大传输单元.

以太网的MTU是1500字节.802.3规定的MTU是1492字节.
路径MTU是路径上最小的MTU.

MTU为什么不能太大?

因为太大会增大响应时间,人的体验不好.

MTU不能不是越小越好?
过小,纠错和头部等占比过高,降低链路利用率.

原创粉丝点击