(参考文献)TCP/IP详解,卷1:协议

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

一、   为它上层的IP模块发送和接收IP数据报

二、   为ARP模块和RARP模块请求和接收ARP应答

三、   为RARP发送RARP请求和接收RARP应答

对数据帧封装的两种方式(IP报文传给链路层进行封装):

1、以太网封装

2、IEEE 802封装(以下的数字都表示Byte)

CRC字段(或FCS,帧检验序列)是一个循环冗余校验码,用于检验数据帧中的错误。

环回接口:

大多数的主机都支持环回接口(Loopback Interface),以允许运行在同一个主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127就是为环回接口预留的。根据惯例大多数系统吧127.0.0.1分配给这个接口,并命名为localhost。

最大传输单元MTU:

如上图,以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492,链路层的这个特性称为MTU

路径MTU:是指两台计算机之间通信时,所通过的网络中最小的MTU。两台主机之间的MTU值不是一个常数,因为IP选路总是在变化的。

IP(网际协议)

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

IP协议的两个特性:

不可靠:他的意思是不能保证IP数据报能成功的到达目的地。IP只提供尽力而为的传输服务。任何要求的可靠性必须又上层来提供。

无连接:意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理都是相互独立的。这也说明IP数据报不按照发送顺序接收。

IP数据报格式:

普通的IP首部长为20个字节,除非含有选项字段。目前的协议版本是4,因此IP有时称为IPv4。

首部长度指的是首部占32bit的数目,包括任何选项。由于它是一个4bit字段,因此,首部最长为60个字节。

服务类型(TOS)字段,包含一个3bit的优先权字段,4bit的TOS字段,和1bit未用位但必须置为0。4bit的TOS分别代表:最小延迟,最大吞吐量最高可靠性和最小费用。4bit中只能置其中1bit,如果4bit都为0,那么就意味着是一般服务。

总长度字段是指IP数据包的长度,以字节为单位。利用首部长度字段和总长度字段就可以知道IP数据报中数据内容的起始位置和长度。

TTL(TimeTo Live)生存时间字段设置了数据报可以经过的最多路由器数,他指定了数据包的生存时间。TTL的初始值有源主机设置,一旦经过一个处理他的路由器,他的值就会减1。当该字段的值为0是,数据报就被丢弃并发送ICMP报文通知源主机。

IP路由选择:

从概念上来说IP路由选择是简单的,特别对于主机来说。如果目的主机与源主机直接相连,或者都在一个共享网络上,那么IP数据报就直接送到目的主机上。否则就把数据报发到一个默认的路由器上,由路由器来转发该数据报。

大多数的用户操作系统,包括几乎所有的unix操作系统,都可以配置成一个路由器,我们可以为他指定主机和路由器都可以使用的简单路由算法。本质上的区别在于主机从来不会吧数据报从一个接口转到另外一个借口,而路由器则需要转发数据报。内含路由器的主机一般不会转发数据报,除非他被配置成路由器。

一般的情况是,IP可以上层协议封装的数据报TCP、UDP、ICMP、IGMP接收数据报(即本地产生要发送的数据报)或者从一个网卡接口接收数据报(待转发的数据报)进行发送。IP层在内存中有一个路由表,当IP层收到一个数据报时(可能来自某个网络接口或者本地产的),都会搜索路由表。   当数据报来自某个网络接口时,IP首先检查目的IP地址是否为本机的IP地址之一或者为广播地址,如果是这样,就会送给IP首部协议字段说指定的协议模块进行处理;如果数据报的目的地址不是这些地址,如果IP层被配置有路由器的功能,那么他就对数据报进行转发。否则就将该数据包丢弃。

整个过程如下图:


IP路由表的每一项都包含这些信息:

1.目的IP地址:他既可以是一个完整的主机地址,也可以是一个网络地址,由该表中的标志字段来指定(如下所述)。

2.下一站路由器的IP地址

3.标志:其中一个标志指明目的IP地址是网络地址还是主机地址;另一个标志指明,下一站路由器是否为真正的下一站路由器还是一个直接相连的接口。

4.为数据报传输指定一个网络接口

IP路由选择是逐跳进行的,IP并不知道到达任何目的地的完整路径,所有的路由选择只为数据报提供下一站路由器的IP地址。他假定下一站路由器比接近发送数据报的主机更接近目的地。

IP路由选择主要完成这些功能(按先后顺序执行):

1、     搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配),如果找到,则把数据报发给该表目指定的下一站路由器或直接相连的网络接口。

2、     搜索路由表,寻找能与目的网路号相匹配的表目。如果找到,则把该数据报发给该表目指定的下一站路由器或直接相连的网络接口。

3、     搜索路由表,寻找默认的表目(default),则把该数据报发给该表目指定的下一站路由器。

如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果该数据报来自本机,那么一般会向生成数据报的应用返回一个“主机不可到达”或网络不可到达的错误。完整的主机号匹配在网络号之前执行,只有当他们都失败后才选择默认路由。

子网寻址

现在所有的主机都要求支持子网编址。不是把IP地址简单的看成由单纯的一个网络号和一个主机号组成而是把一个主机号再分成一个子网号和主机号。这样做的原因是A类和B类地址为主机号分配了太多的空间可分别容纳的主机位224-2和216-2 (由于全0或全1的主机号都是无效的,所以这里减去2).事实上,在一个网络中人们并不安排这么多的主机。

从InterNIC获得某类IP网络号后,就由当地的系统管理员来进行分配,有他来决定是否建立子网。例如,有一个B类网络地址  140.252,在剩下的16bit中8位用于子网号,8位用于网络号;这样就允许有254个子网,每个网络有254台主机。

大多数的子网地址都是B类地址。子网还可以用于C类地址,只是他可用的比特数较少。

子网掩码

任何主机在引导时进行的部分配置是指定主机IP地址。除了IP地址外,主机好需要知道有多少位用于子网号多少位用于主机号。这是在引导过程中通过子网掩码来确定的。子网掩码是一个32为的值,其中值为1的比特用于网络号和子网号,为0的比特留给主机号。如下图:

给定IP地址和子网掩码以后,主机就可以确定IP数据报的目的是:(1)本子网上的主机;(2)本网络中,其他子网里的主机;(3)其他网络上的主机。

链路层的封装方式与IP选路 (二)相关推荐

  1. 链路层基本问题 : 封装成帧、差错检测、流量控制

    一.封装成帧 1.MAC帧 类型字段 (2个字节): 用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议. 数据字段 (46-1500): 正式名称是MAC客户数据字段最 ...

  2. 计算机网络5-详述链路层:封装成帧、透明传输、差错控制、链路层协议(SR GBN ALOHA CSMA PPP HDLC)、滑动窗口

    一.链路层概述 1.基本功能概述 数据链路层主要负责通过一条链路从一个结点向另一个物理链路直接相连的相邻节点传送数据报 即,将其上层网络层交付给其的数据报,安全无差错地传给相邻结点 2.相关术语 节点 ...

  3. 计算机网络实验: 使用Wireshark抓包工具进行网络层和链路层网络协议分析(IP部分)

    目录 实验名称: 实验介绍: 实验目的: 背景知识和准备: 实验过程: 一. IP协议分析 二. Ethernet & ARP 协议分析 实验名称: 网络层和链路层网络协议分析 实验介绍: 本 ...

  4. 《TCP/IP 详解 卷1:协议》第 3 章:链路层

    在体系结构中,我们知道:链路层(或数据链路层)包含为共享相同介质的邻居建立连接的协议和方法,同时,设计链路层的目的是为 IP 模块发送和接受 IP 数据报,链路层可用于携带支持 IP 的辅助性协议,例 ...

  5. TCP/IP协议:链路层

    1.引言 在TCP/IP协议簇中,链路层的目的有三个: (1)为IP模块 发送和接收IP数据 报 (2)为ARP模块发送ARP请求和接收ARP应答 (3) 为RARP模块发送RARP请求和接收RARP ...

  6. 计算机网络 第六章 链路层与局域网

    参考书籍:<计算机网络:自顶向下的方法>第七版 链路层提供的服务 将IP数据报封装成帧 链路接入(媒体访问控制协议) 可靠交付(针对某些不稳定的链路,进行差错检验和纠错)(注意以太网是提供 ...

  7. 【2021-08-05 修订】【梳理】计算机网络:自顶向下方法 第六章 链路层和LAN(docx)

    计算机网络 知 识 梳 理 (第一版) 建议先修课程:数据结构. 配套教材: Computer Networking - A Top Down Approach, 7th edition James ...

  8. 计算机网络 自顶向下(5)链路层——学习笔记

    · 概述: · 结点:任何运行链路了层协议的任何设备.包括主机.路由器.交换机和WiFi接入点. · 链路:沿着通信路径连接相邻结点的通信信道称为链路.数据报必须通过沿端到端路径上各段链路传输. · ...

  9. 计算机网络--网络层/链路层

    网络层:负责地址管理和路由选择: ip协议格式: 地址管理   IP地址:ipv4/ipv6   ipv4-uint32_t ---- 总共不到43e个IP地址,用于在网络中表示唯一主机   我们在上 ...

最新文章

  1. 机器模拟共情,情感AI正踏足诸多行业
  2. AI系列一:机器学习介绍
  3. 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( “Python“ 因为出现问题而无法打开 )
  4. C++如何监听http请求
  5. java异步执行任务
  6. 数据仓库中捕获变化数据(CDC,Changed Data Capture)的四种手法
  7. c语言二叉树的生成,C语言实现二叉树的创建以及遍历(递归)
  8. matlab 数组范围内,MATLAB索引超出数组范围
  9. ScreenFlow for mac(屏幕录像软件)
  10. 用友漏洞php,用友NC任意文件上传漏洞复现
  11. 详细讲述matlab中矩阵的卷积函数convn
  12. 【图论】spfa算法详解
  13. 软件项目的招投标文件
  14. mysql tddl_TDDL思考总结
  15. 全国高级项目经理人数知多少?(数据统计截止2013年6月22日)
  16. android 信息添加附件功能,网易邮箱Android新版 添加附件可直接预览
  17. 头条学院-新媒体训练营第10期 | 10.23笔记(新媒体:一代人的机遇)
  18. 全国计算机等级考试.pdf,全国计算机等级考试.pdf
  19. Git版本控制管理——版本库管理
  20. 如何正确使用步道乐跑

热门文章

  1. 《Docker——容器与容器云》:第一章 从容器到容器云
  2. 30 天精通 RxJS (01):认识 RxJS
  3. 《计算机网络教程 自顶向下方法》 第一章
  4. Zabbix中文乱码问题
  5. rtorrent - 强大的命令行BT客户端
  6. JQuery知识点汇总
  7. NHibernate3剖析:Query篇之NHibernate.Linq标准查询
  8. matlab中怎么求矩阵的特征值和特征向量
  9. matlab位运算函数
  10. Hyperledger Fabric Java SDK最新教程