1、引言

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

(1)为IP模块 发送和接收IP数据 报

(2)为ARP模块发送ARP请求和接收ARP应答

(3) 为RARP模块发送RARP请求和接收RARP应答

TCP/IP支持多种不同的链路层协议,取决于网络所使用的硬件,如以太网、令牌环网、FDDI(光纤分布式数据接口)及RS-232串行线路等。

2、以太网和IEEE802封装

帧格式采用48bit的目的地址和源地址。ARP和RARP协议对32bit的IP地址和48bit的硬件地址进行映射。

802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不是包括CRC检验码。以太网的类型字段定义的后续数据的类型。在802标准定义的帧格式 中,类型字段由后续 的子网接入协议(SNAP)的首部给出。

以太网帧格式中,类型字段后是数据;在802帧格式中,跟随在后面的是3字节的802.2 LLC和5字节的802.5 SNAP。目的服务访问点(Destination Service Access Point)和源服务访问点(Source Service Access Point)r 的值都设置为0xaa。Ctrl字段的值设置为0x03。随后的3个字节org code设置0,再接下来的2字节与以太网的格式一样。

CRC字段用于帧内后续字节差错的循环冗余检验,也称为FCS

802标准定义的帧和以太网的帧都有最小长度要求。802规定数据部分必须至少为38字节,而以太网规定最少为46字节。为了保证这一点,对于不满足的空间插入填充字节。

3、SLIP:串行线路IP

全称Serial Line IP,是一种在串行线路上对IP数据报封装的简单形式,其帧格式为:
(1)IP数据报以一个称作END(0xc0)的特殊字符结束。在数据报的开始处也传一个END字符。

(2)如果IP报文中某个字符为END,就用连续的两个字符0xdb和0xdc来取代它。0xdb字符也称作SLIP的ESC字符。

(3)如果IP报文中某个字符为ESC,就用连续两个字符0xdb和0xdd来取代。

其缺陷:

(1)每一端必须知道对方的IP地址。没有办法将本端的IP地址通知给另一端

(2)数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它就不能用于其它协议。

(3)没有在数据帧中加入检验和,只能通过上层协议来实现。

4、PPP:点对点协议

PPP,修改了SLIP的所有缺陷,包括三个部分

(1)在串行线路上封装IP数据报的方法。既支持数据为8位和无奇偶检验位的异步模式,也支持面向比特的同步连接。

(2)建立、配置及测试数据链路的链路控制协议(LCP:Link Control Protocol)

(3)针对不同网络层协议的网络控制协议(NCP:Network Control Protocol)

每一帧以标志字符0x7e开始和结束。紧接是一个地址字节,值始终是0xff,然后是一个值为0x03的控制字节,接下来是类型字段,类似于以太网中的类型字段的功能,当它的值 为0x0021时, 表示信息字段是一个IP数据报,值 为0xc021时,表示信息字段链路控制数据,值为0x8021时,表示信息字段是网络控制数据。

由于标志字符的值是0x7e,当字符出现在信息字段中,需要转义

(1)当遇到字符0x7e时,需连续传送两个字符,0x7d和0x5e

(2)当遇到转义字符0x7dJF ,需连续传送两个字符,0x7d和0x5d,以实现转义字符的转义

(3)默认情况下,如果字符的值小于0x20,一般都要进行转义。

5、最大 传输单元MTU

以太网和802.3对数据帧的长度都 有一个限制,最大值 分别为1500和1492字节。链路上的这个特性称作MTU,最大传输单元。如果IP层的数据比链路层的MTU大,IP层需要进行分片。

TCP/IP协议:链路层相关推荐

  1. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

  2. 【TCP/IP】链路层的简单认识

    版权声明:本文为CSDN博主「Lpyexplore」的原创文章, 原文链接:https://blog.csdn.net/l_ppp/article/details/109248705. 链路层的简单认 ...

  3. TCP/IP协议各层首部汇总

    TCP/IP将网络划分为4层,当然标准的因特网协议栈有5层,OSI模型有七层.TCP/IP的4层结构如下: 将TCP/IP协议族的网络分层描述的详细些的话,如图: 每一层都有自己的首部及封装格式: 一 ...

  4. TCP/IP协议传输层详解

    目录 前言 一.端口号 1.概念 2.相关命令 二.UDP协议 1.UDP数据报格式 2.UDP的特点 3.UDP的缓冲区 三.TCP协议 1.TCP数据报格式 2.确认应答(ACK)机制 3.缓冲区 ...

  5. 【自我笔记之Linux】 OSI 7 层模型与 tcp/ip 协议 4 层模型

    1.网络接口层(对应OSI模型的物理层与数据链路层):它负责监视数据在主机和网络之间的交换. 事实上,tcp/ip本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与t ...

  6. TCP/IP 原理--链路层

    链路层作用: (1)为IP模块发送和接收IP数据报: (2)为ARP发送ARP请求和接受ARP应答 (3)为RARP发送RARP请求和接受ARP应答 协议:以太网和SLIP协议 A.以太网协议数据封装 ...

  7. 「网络基础」TCP/IP协议4层模型,一分钟了解下

    一.TCP/IP四层模型 1.网络接口层 2.互联网层 3.传输层 4.应用层 TCP/IP和OSI七层对应关系: OSI&TCP IP 应用层协议对应关系: [了解]Dynamic Host ...

  8. 【TCP/IP 协议】 TCP/IP 基础

    总结 : 通过学习 TCP/IP 基础, 并总结相关笔记 和 绘制思维导图 到博客上, 对 TCP/IP 框架有了大致了解, 之后开始详细学习数据链路层的各种细节协议, 并作出笔记; 博客地址 : h ...

  9. OSI参考模型与TCP/IP协议的比较研究

     OSI参考模型与TCP/IP协议的比较研究  OSI参考模型与TCP/IP协议的比较研究 摘要:OSI参考模型与TCP/IP协议是网际互联中的两个重要协议体系.本文从首先分别介绍了两个协议体系的产生 ...

最新文章

  1. 16项不可抗拒的云创新
  2. oracle mysql sql serve where in 语句的不同
  3. 不知道读什么好?这 16 篇最新论文,帮你轻松积攒知识点
  4. BugKuCTF WEB 计算器
  5. BZOJ-1968 COMMON 约数研究 数论+奇怪的姿势
  6. 算法6-1:哈希函数
  7. python两个类共用一个变量_python – 如何从一个类到另一个类访问变量?
  8. Servlet中获取请求行的数据
  9. svn php改客户端密码_记录VisualSVNServer配置在线密码修改功能
  10. Android和Linux kernel发展史
  11. 管理运筹学软件计算机解咋看,运筹学软件结果解析总结计划题1-20210618123710.docx-原创力文档...
  12. POJ 1004:Financial Management
  13. GDAL写入FileGDB中文属性乱码问题
  14. POJ 3761 Bubble Sort(乘方取模)
  15. 文件磁盘相关函数[22]-文本文件读写-不同数据类型的写入
  16. python列表比大小_Python列表按组大小排序
  17. 使用Android Studio开发widget安卓桌面插件
  18. html中figure怎么调图片位置,HTMLfigure figcaption 标签定义图文并茂
  19. 啥?Grafana 还能为日志添加告警?
  20. [ZT]SAP ECC5.0 Working Log TO 2008.5.26

热门文章

  1. 青少年软件编程等级考试 python-中国电子学会、北大等推出青少年软件编程等级标准升级版...
  2. python培训中心-吴中区Python培训中心
  3. python3项目-30 个惊艳的Python开源项目
  4. 计算机编程语言python-2018年计算机编程语言排名: Python语言排名第一
  5. python工程师薪资坑吗-入坑Python爬虫值不值?
  6. python详细教程-python入门(非常详细的教程)
  7. python100个必背知识-python必背内容有哪些
  8. python安装哪个版本-python到底安装哪个版本
  9. python怎么读取文件-python如何读取文件的数据
  10. python读取大文件-python读取大文件