《计算机网络教程 自顶向下方法》 第一章
TCP/IP协议族(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)
层次化结构
路由器只涉及 3 层(网络层、数据链路层、物理层)。
虽然一个路由器总是拥有一个网络层,但是它涉及 n 个数据链路层和物理层的组合,其中 n 为路由器连接的链路的数目。其主要原因是每一个链路可以使用它自己的数据链路或物理层。
例如在图 1-13中,路由器拥有 3 条链接,但是从源 A 发送到目的地 B 的消息涉及两条链接。每一条链接可以使用不同的链路层和物理层协议;路由器需要从基于一对协议的链路 1 接收分组并将它投递到基于另一对协议的链路 2。
在一条链路上的链路层交换机只涉及两个层次:数据链路层和物理层。
TCP/IP协议族中的层次
区别:
应用层、传输层和网络层的任务是端到端的(end-to-end)
数据链路层和物理层的任务是点到点的(hop-to-hop)
高三层的任务范围是互联网,低两层的任务范围是链路。
高三层,数据单元(分组)不应该被任何路由器或链路层交换机改变。
低两层,主机创建的分组仅仅被路由器改变,链路层交换机不改变它们。
TCP/IP各层描述
应用层
两个应用层之间的逻辑连接是端到端的
通信需要通过所有层次完成。
应用层的通信处于两个进程(该层正在运行的两个程序)之间。
协议 | 作用 |
超级文本传输协议(Hypertext Transfer Protocol,HTTP) | 访问万维网(World Wide Web,WWW)的载体 |
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP) | 电子邮件(e-mail)服务的主要协议 |
文件传输协议(File Transfer Protocol,FTP) | 将文件从一台主机传输到另一台主机 |
远程登录(Terminal Network,TELNET)和安全外壳(Secure Shell,SSH) | 访问远端的站点 |
简单网络管理协议(Simple Network Management Protocol,SNMP) | 对 Internet全局或局部进行管理 |
域名系统(Domain Name System,DNS) | 使其他的协议能够查询一台计算机的网络层地址 |
因特网组管理协议(Internet Group Management Protocol,IGMP) | 管理一个组的成员资格 |
传输层
传输层的逻辑连接也是端到端的
传输层负责向应用层提供服务:从运行于应用层的程序得到信息,并将它投递到目的主机相应的应用程序。
传输控制协议(Transmission Control Protocol,TCP)是一个面向连接的协议,它在传输数据之前,首先在两台主机的传输层之间建立一条逻辑连接。TCP 协议在两个 TCP 层之间创建一个管道,以便传输字节流。
TCP 协议提供流量控制(匹配源主机的发送数据速率与目的主机的接收数据速率,以防止目的主机溢出)、差错控制(保证数据段无差错到达目的地和重新发送受损的数据段)、拥塞控制(减少由于网络拥塞造成的数据段丢失)。
UDP 是一种无连接协议,它传输用户数据报之前不需要创建逻辑连接。在 UDP 中,每个用户数据报是一个独立的实体,它和前一个或后一个用户数据报没有关系(无连接就是这个意思)。
网络层
网络层的通信是主机到主机的。
路径上的路由器负责为每个分组选择最好的路径。
我们自己为什么需要网络层
原因之一是在不同的层次之间分割不同的任务。
原因之二是路由器不需要应用层和传输层。分割任务允许我们在路由器上加载较少的协议。
Internet 的网络层包括其主要协议:因特网协议(Internet Protocol,IP),因特网协议定义了在网络层称为数据报的分组格式。IP 同时定义了在这一层使用的地址格式和结构。与此同时,IP 负责从源主机把一个分组路由到目的主机。这种功能主要是通过每个路由器都将数据报转发到路径上的下一个路由器而实现的。
IP 是一个无连接的协议,不提供流量控制、差错控制和拥塞控制服务。
因特网控制报文协议(Internet Control Message Protocol,ICMP) | 帮助 IP 报告遇到的问题 |
因特网组管理协议(Internet Group Management Protocol,IGMP) | 协助 IP 进行多任务处理 |
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP) | 帮助 IP 获取一台主机的网络层地址 |
地址解析协议(Address Resolution Protocol,ARP) | 帮助 IP 寻找一台主机或一台路由器的链路层地址 |
数据链路层
我们已经知道一个互联网是多个链路(LAN 和 WAN)通过路由器连接而构成的。从主机传输数据报到目的地可能存在多个交叠的链路集。
路由器负责选择最好的链路进行传输。数据链路层都要负责通过链路传输分组。
数据链路层接管一个数据报并将它封装在一个称为帧(frame)的分组中。
物理层
我们可以说物理层负责携带一个帧中单独的比特穿过链路。
尽管物理层位于 TCP/IP 协议簇的最底层,但是由于在物理层之下存在另外一个隐藏的传输介质层,因此两个设备物理层之间的通信仍然是逻辑通信。
两个设备通过一种传输介质(电缆或大气)连接。我们需要知道传输介质不携带比特;它携带电或光信号。所以,从数据链路层接收的一个帧的比特需要被变换,然后通过传输介质传输。但是我们可以认为两个设备物理层之间的逻辑单元是一个比特(bit)
封装和解封装
链路层交换机中没有封装/解封装发生
源主机的封装
在源主机端,我们只进行封装。
1.在应用层,交换的数据称为消息(message)。
2.传输层把这个消息的基础上增加传输层头部,其结果为一个传输层分组。该分组在 TCP 中称为段(segment),在 UDP 中称为用户数据报(user datagram)。
3.网络层在传输层分组上添加自己的头部。其结果为一个称为数据报(datagram)的网络层分组。
4.数据链路层在网络层分组上自己的头部。该头部包含主机或下一跳步(路由器)的链路层地址。其结果为一个称为帧(frame)的链路层分组。
路由器的解封装与封装
由于路由器连接两个或多个链路,因此在路由器中我们既需要进行解封装也需要进行封装。
1.在比特集被投递到数据链路层后,这一层从帧中解封装出数据报并将它投递到网络层。
2.网络层只检查数据报头部的源地址和目的地址,查阅它的转发表以寻找该数据报将被投递到的下一跳步。除非数据报太大以至于不能通过下一链路时需要对其进行分片,数据报的内容不应该被网络层改变。然后,数据报被传递到下一链路的数据链路层。
3.下一链路的数据链路层将数据报封装成一个帧,将其传递到物理层进行传输。
目的主机的解封装
主机中的解封装包含差错检查。
地址
在 Internet 中,与协议分层相关的另一个概念是地址。正像以前讨论的那样,在这种模型中一对层次之间存在逻辑通信。包含两方的任意通信都需要两个地址:源地址和目的地址。尽管看起来我们似乎需要 5 对地址(每层一对),但是由于物理层不需要地址,我们通常只需要 4 对;物理层的数据交换单元是一个比特,它绝对没有地址。
多路复用与多路分解
由于 TCP/IP 协议簇在一些层次使用多个协议,因此我们在源端需要进行多路复用(multiplexing),在目的端需要进行多路分解(demultiplexing)。在这种情况下,
多路复用的意思是一个协议能够封装来自多个上层协议的分组(一次一个);
多路分解的意思是一个协议能够进行解封装,并且将分组投递到多个上层协议(一次一个)。
《计算机网络教程 自顶向下方法》 第一章相关推荐
- 软件工程导论 1-13章 重点定义及解释
软件工程导论 第一章 概述 第二章 可行性研究 第三章 需求分析 第五章 总体设计 第六章 详细设计 第七章 实现 第八章 维护 第九章 面向对象方法学引论 第十章 面向对象分析 第十一章 面向对象设 ...
- 计算机导论第一章试题及答案,计算机导论第一章测试题
计算机导论第一章测试题 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 Test Bank-Chapter One (Data Re ...
- 网络空间安全导论-第一章习题
网络空间安全导论-第一章习题 1.网络空间安全有哪些定义? 2.简述网络安全空间的技术架构. 3.列举一些你身边遇到或发现的网络安全问题,试分析其中的原因,并说说有哪些防范措施. 1.网络空间安全有哪 ...
- 概率论的基本公式(概率导论第一章)
概率论的基本公式(概率导论第一章) 文章目录 概率论的基本公式(概率导论第一章) 1. 概率模型 1.1 概率模型的基本组成 1.2 概率公理 1.3 概率律的若干性质 2. 条件概率 2.1条件概率 ...
- 现代软件工程讨论第一章-第四章
第一章 1.代码如下 #include <iostream> #include <cstdio> #include <time.h> using namespace ...
- 软件工程技术--第一章 概述
第一章 软件 操作系统本身就是一个软件,一个系统可以理解为系统软件. 什么是软件? 软件是计算机系统的"思维中枢",它与计算机硬件相互作用,互相配合,从而实现了特定的系统功能. 软 ...
- 我眼中的算法导论 | 第一章——算法在计算中的作用、第二章——算法基础
一个小白的算法学习之路.读<算法导论>第一天.本文仅作为学习的心得记录. 算法(Algorithm) 对于一个程序员来说,无论资历深浅,对算法一词的含义一定会或多或少有自己的体会,在< ...
- 工程电磁场导论第一章总结
前言:电磁场中有很多题目运用了圆柱或球坐标系,下面这篇文章对此有介绍,后面有时间 可能我也会写一点电磁场中有很多题目运用了圆柱或球坐标系,下面这篇文章对此有介绍电磁场电磁波基础笔记之圆柱和 ...
- 软件工程导论 01章软件工程学概述
1.软件是程序.数据以及各种相关文档的集合. 程序是对计算任务的处理规则的描述,数据是对计算任务的处理对象的描述,文档则是有关计算机程序功能.设计.编制与使用的文字图形资料. 软件等于程序加数据加相关 ...
- 计算机科学导论 -- 第一章 绪论
一 本章内容 本章讲述了 图灵模型 冯.诺依曼模型 计算机组成部分 历史 社会问题和道德问题等 1.1 图灵模型 Alan Turing(阿兰-图灵)1937年首次提出通用计算设备的设想: 所有的计算 ...
最新文章
- C#自动实现Dll(OCX)控件注册的两种方法
- mongodb学习篇
- 概率论回顾.pptx
- ES6之Module的语法(3)
- java定义基础变量语句_编程语言第一:JAVA语言基础,变量
- Spark SQL的整体实现逻辑
- 设置ORACLE_HOME环境变量
- STM32移植LWIP
- 【文献阅读】Self-Normalizing Neural Networks
- tarjan 割点 割边
- 快速排序的python实现
- spring扩展点六:监听spring容器刷新事件
- PSASP7.61版本,求新能源的算例
- uniapp微信公众号h5微信授权登录
- Lync Server 2010下载拓扑报错分析及解决方法分享
- CMD如何直接运行文件
- 照片太大怎么缩小kb?
- 一文详解GATK-HaplotypeCaller 变异检测原理和实战
- 世界上顶级英文歌曲首选
- Redis学习记录之Transaction简析(十九)
热门文章
- RecyclerView的那点事儿
- Java语言实现二分查找(可查询重复数据)
- 64 oracle client,64bit oracle and oracle client.
- linux安装mysql8.0.18_Linux安装MySQL8.0
- 华为M2 e服务器信息解析失败,关于华为:华为审核被拒检查HMS-Core更新失败
- IDEA REST Client IDEA自带的接口调试工具
- Python知识:生成声波并显示
- python知识:numpy如何保存矩阵
- ROS学习:创建机器人的urdf
- Halcon初学者知识【17】如何将零件提取dxf图