TCP/IP详解 卷1 链路层图例和链路层上的各个协议的介绍

链路层功能


图片中最下面那层
为IP模块发送和接受IP数据报
为ARP和RARP发送请求和接受应答

以太网

  1. 以太网的速率为10M/S 地址为48bit(6字节)
  2. IEEE标准 802.3 针对CSMA/CD,802.4针对令牌总线网络,802.5针对令牌环网络
  3. 以太网帧格式有两种:RFC894和RFC1042,一般用RFC894
  4. 长度均为48bit 也就是硬件地址 ARP与RARP对32bit的IP地址与48bit的硬件地址做映射
    在这里插入图片描述上面的是802.2/3制定的以太网帧格式,下面是RFC894以太网帧格式
    分为类型字段(目的地址,源地址,类型/长度)和数据字段,CRC字段

802.2/3以太网帧格式:

长度: LLC至CRC前的字节长度。
LLC: 802.3 LLC SNAP 以太帧格式(802委员会制定的新标准名称)(5字节描述)
DSAP:目的服务访问点 0xaa(1字节)
SSAP: 源服务访问点 设0xaa(1字节)
Ctrl: 该字段值通常设为0x03,表示无连接服务的IEEE 802.2无编号数据格式。(1字节)
org code: 设0(3字节)
CRC字段:字节差错的循环冗余检验(检验和)(FCS或帧检验序列)(4字节)
数据长度为38~1492字节

以太网RFC894以太帧格式

由目的地址,源地址,类型,数据,CRC组成
数据长度为46~1500字节

SLIP(串行线路IP)(点对点)

应用场景:猫(调制调解器)与电脑的互联就是采用这种协议

帧格式

在这里插入图片描述
END: 用作头尾标识,使得能够正确辨别是否是IP数据报,错误的直接丢弃(值:c0, 1字节)。如果报文中后c0则连续传输0xdb和0xdc来替代(转义)
在SLIP中0xdb是代表ESC(ASCII中不是,ASCII中是0x1b),如果报文中有0xdb则使用0xdb和0xdd来替代

SLIP缺点

  1. 无法将本端的ip发送给对方
  2. 数据帧中没有类型字段,所以如果1条线路使用了SLIP,那么它将不能同时使用其他的协议了
  3. 帧字段没有检验和(类似以太网的CRC字段),如果数据发生错误,只能通过上层协议去发现。所以上层协议一定要有提供某种形式的CRC字段(IP和TCP都有加检验和,UDP可选)

CSLIP(压缩的SLIP)

SLIP的升级版。因为串行线路的速率较低(19200b/s,也就是2400字节/s,也就是2M左右)
目前的SLIP有一个问题 为了传送1字节的数据需要添加20字节的TCP,20字节的IP,14字节的以太网首部(如果有),还有4字节的以太网尾部(如果有)。那这样就很浪费了CSLIP能够将IP和TCP的首部压缩成3到5个字节的首部信息。且CSLIP每一端能维持多达16个TCP连接。

PPP(点对点协议)

也是SLIP的升级版,升级部分包括:

  1. 封装IP数据报时既支持8位的数据和无奇偶检验的异步模式,还支持面向比特的同步连接。
  2. 支持LCP协议(链路控制协议)允许通信双方协商,以确定不同的选项
  3. 支持NCP(网络控制协议)
PPP数据帧格式

在这里插入图片描述
头和尾用0x7e做标识。地址部分字节始终是0xff,控制字节是0x03。
协议为下面3个三选一都是16进制表示
CRC字段(或FCS)就是检验和了
0x7e在数据中出现时的转义:

  1. 使用比特填充技术(同步链路
  2. 0x7d代替0x7e(异步链路
  3. 异步连接时的转义:
    1. 遇到0x7e,传送0x7d并且0x7e第六位取0变成0x5e
    2. 遇到0x7d,传送0x7d并且第六位取0编程0x5d
    3. 如果字符的值小于0x20,则需要转义需要在第六个比特取补码后变为1,就是+0x20

采用Van Jacobson报文首部压缩方法减少IP和TCP首部长度

PPP与SLIP相比的优势

  1. 支持单根串行线路上运行多种协议(有协议字段)
  2. 每一帧都有循环冗余检查(CRC或FCS)
  3. 通过IP网络控制协议动态协商IP地址
  4. 对TCP和IP首部进行压缩
  5. 以3字节为代价实现链路控制协议对多个数据链路选项进行设置的协商数据
  6. PPP最终会取代SLIP

环回接口

允许主机内部各个程序采用TCP/IP协议进行通讯
A类网络号127就是给环回接口预留的
惯例是127.0.0.1 localhost
传给环回接口的IP数据报不能出现在网络上
虽然环回接口的地址可以不用经过网络层和传输层直接返回给自己。但是大多数应用还是会走一遍。直到IP数据包离开网络层的时候才会返回
在这里插入图片描述
关键点:

  1. 传给环回地址的任何数据都做为IP输入
  2. 多播和广播包含主机自己,所以也会传一份给自己
  3. 任何传给该主机的IP数据报都会发送到话环回接口

最大MTU单元

指的是以太网的802.3(1492)和RFC894(1500)的最大传输长度。简称MTU
如果需要传输比1500或1492字节大的数据,则需要进行切片,每一片都小于MTU
在这里插入图片描述

路径MTU

路径MTU指的是两台主机所涉及的网络中每个网络设备中MTU值最小的那个。从A市到B市同时出发的车辆到达数并不取决与A市或B市道路宽度,而是取决于从A市到B市时经过的所有马路中宽度最窄的那个。

串行线路吞吐量计算

  1. 串行线路每个字节前后都要加上1bit的起始标志和终止标志。如果线路速率是9600b/s那实际就是960B/S
  2. 交互数据会优先于大块的分组数据发送出去(不包括已经进入了串行驱动中的分组数据)和进入缓冲区的
发布了239 篇原创文章 · 获赞 31 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/soulwyb/article/details/102685675
今日推荐