在TCP/IP协议族中,链路层主要有三个目的:

1)为IP模块发送和接受IP数据报;

2)为ARP模块发送ARP请求和接受ARP应答;

3)为RARP模块发送RARP请求和接受RARP应答;

以太网和IEEE 802封装

以太网是1982年公布的一个标准,是当今TCP/IP采用的主要的局域网技术,它采用一种称为CSMA/CD的媒体接入方法,意思是带冲突检测的载波侦听多路接入,它的速率是10Mb/s,地址为48bit。

还有一个标准是IEEE 802标准。它和以太网的帧格式不同。802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络,这三者的共同特性由802.2标准定义,这就是802网络共有的逻辑链路控制(LLC)。

在TCP/IP中,以太网的IP数据报的封装是在RFC 894中定义的,IEEE 802的封装是在RFC 1024中定义的。

最常使用的封装格式是RFC 894定义的格式。下图是两种不同的封装格式。

上图中,第一个封装格式是802标准的,第二个是以太网格式的。

从上图可以看出,两种帧格式都采用48bit的目的地址和源地址,存放的是硬件地址。ARP和RARP协议会对32位IP地址和48位的硬件地址进行映射。

802接下来的是长度字段,指的是后续数据的长度,不包括CRC。而以太网接下来的类型字段定义了后续数据的类型。

以太网帧格式比较简单,接下来就是数据了。而802帧格式接下来是3个802.2的LLC和5字节的 SNAP(子网接入协议),其中,目的服务访问点(DSAP)和源服务访问点(SSAP)值都为0xaa,Ctrl字段值为3,随后的3个字节org code都为0,再接下来就是类型字段。

802.3规定数据部分至少为38字节,以太网则要求是46字节,如有不足的情况,就要填充字节。

SLIP:串行线路IP

这是一种在串行线路上对IP数据报进行封装的简单形式。

开始处和结束处传一个END(0xc0)的特殊字符。

如果报文中某个字符为END,那么就了连续传输两个字节0xdb和0xdc来取代。0xdb被称为SLIP的ESC字符。

如果报文中某个字符为ESC字符,那么就连续传输两个字节0xdb和0xdd。

值得一提的是,这是一个老的工业标准,目前已被PPP协议取代。

压缩的SLIP

为了传输一个字节需要20个字节的IP首部和20个字节的TCP首部。CSLIP一般能把这40个字节压缩到3到5个字节。

PPP:点对点协议

格式如上图,不再赘述。

环回接口

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

最大传输单元MTU

也就是对数据帧的长度的限制,比如以太网的是1500字节。

当两个主机间的通信需要经过多个网络,那么其中最小的MTU称为路径MTU。

串行线路吞吐量计算

最新文章

  1. .net类库里ListView的一个BUG
  2. 详解linux系统的启动过程及系统初始化
  3. nginx优化配置
  4. 内存不足时Android 系统如何Kill进程
  5. maven mirror
  6. 『重构--改善既有代码的设计』读书笔记----Replace Data Value with Object
  7. R学习笔记(4): 使用外部数据
  8. php+MySql实现登录系统与输出浏览者信息功能
  9. Jquery版本对IE浏览器的支持
  10. python数据结构之选择排序
  11. 最全的测试用例(UI)
  12. Ubuntu16.04常用软件源
  13. 为什么“how to say”是错的?
  14. 开发一款即时通讯App,从这几步开始
  15. 标准库string类型
  16. NAT&Port Forwarding&Port Triggering
  17. Linux环境下安装zookeeper
  18. Python_安装官方whl包和tar.gz包
  19. 断电后gitlab报500错误启动出错
  20. RequireJs学习笔记之Define a Module

热门文章

  1. Python 爬取汽车领域问答语料(自用)
  2. 文法设计,对于void的修改
  3. 快速把web项目部署到weblogic上
  4. Linux 倒引号、单引号、双引号
  5. Android fragment 切换载入数据卡顿问题
  6. ListView改变字体
  7. IBM-ETP 实训项目前一天
  8. U3D实现与iOS交互
  9. 算法笔记_072:N皇后问题(Java)
  10. js 立即执行函数定义方法