TCP/IP入门(1) --链路层

时间:2023-07-20 08:06:19

/**

本博客由汗青ZJF整理并发布, 转载请注明出处:

http://blog.csdn.net/zjf280441589/article/category/1854365

*/

TCP/IP体系结构

TCP/IP入门(1)  --链路层

1)网络接口层

物理层定义与传输媒体的接口有关的一些特性,即机械特性、电气特性、功能特性、过程特性,并需要完成并行传输和串行传输之间的转换。

数据链路层向该层用户提供透明的和可靠的数据传输服务。 透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠性是指在传输过程中将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,其具体的方法有帧同步、差错控制、流量控制、链路管理。

数据链路层中的主要协议有点对点协议PPP,CSMA/CD协议,以太网802.3。

2)网际层(IP层)

网际层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网际层不提供服务质量的承诺,即所传输的分组可能出错、丢失、重复和失序,当然也不保证分组交付的时限。

网际层中主要协议有IP协议,地址解析协议ARP和网际控制报文协议ICMP等。

IP协议是网际层的核心,通过路由选择将下一跳IP封装后交给网络接口层。IP 数据报是无连接服务。

ICMP是网际层的补充,可以回送报文。用来检测网络是否通畅(使用ping命令)。

ARP是通过已知IP,寻找对于主机的MAC地址。

3)运输层

运输层为应用进程之间提供端到端(进程到进程)的逻辑通信,并具有复用和分用的功能,即发送方不同的应用进程都可以使用同一个运输层协议传送数据;接收方的运输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。运输层还将对报文进行差错控制,以提供可靠传输。

运输层中主要协议有用户数据报协议UDP和传输控制协议TCP

4)应用层

应用层为用户提供应用程序。

应用层中主要协议有域名系统DNS,文件传输协议FTP,远程终端协议TELNET,超文本传输协议HTTP,简单邮件传送协议SMTP,邮件读取协议POP3和IMAP,动态主机配置协议DHCP等。

DNS:提供域名解析服务,提供域名到IP地址之间的转换,使用端口53

FTP:在异构网络中任意计算机之间传送文件,使用端口21

TELNET:提供用户远程登录服务,使用端口23,使用明码传送,保密性差、简单方便

HTTP:用于实现万维网上的各种链接,即万维网客户程序与万维网服务器之间的连接,使用端口80

SMTP/POP3、IMAP:提供邮件的传输,用来控制信件的发送、中转、从邮件服务器读取邮件

DHCP:为新加入网络的计算机自动分配IP地址

电路交换、报文交换与分组交换

(1)电路交换的三个过程

电路建立 -> 数据传输 -> 电路拆除

在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成)

(2)报文交换

报文交换方式的数据传输单位是报文,报文就是站点一次性要发送的数据块,其长度不限且可变。当一个站要发送报文时,它将一个目的地址附加到报文上,网络节点根据报文上的目的地址信息,把报文发送到下一个节点,一直逐个节点地转送到目的节点。

每个节点在收到整个报文并检查无误后,就暂存这个报文, 然后利用路由信息找出下一个节点的地址, 再把整个报文传送给下一个节点。因此,端与端之间无需先通过呼叫建立连接。

(3)分组交换

分组交换是报文交换的一种改进,它将报文分成若干个分组,每个分组的长度有一个上限,有限长度的分组使得每个节点所需的存储能力降低了,分组可以存储到内存中,提高了交换速度。它适用于交互式通信,如终端与主机通信。

TCP/IP入门(1)  --链路层

电路交换与分组交换优点对比

①由于通信线路为通信双方用户专用,数据直达,所以传输数据的时延非常小.

①加速了数据在网络中的传输。因为分组是逐个传输,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线式传输方式减少了报文的传输时间。 此外,传输一个分组所需的缓冲区比传输一份报文所需的缓冲区小得多,这样因缓冲区不足而等待发送的机率及等待的时间也必然少得多。

②通信双方之间的物理通路一旦建立,双方可以随时通信,实时性强。

②简化了存储管理。因为分组的长度固定,相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易。

③双方通信时按发送顺序传送数据,不存在失序问题。

③减少了出错机率和重发数据量。因为分组较短,其出错机率必然减少,每次重发的数据量也就大大减少,这样不仅提高了可靠性,也减少了传输时延。

④电路交换既适用于传输模拟信号,也适用于传输数字信号。

④由于分组短小,更适用于采用优先级策略,便于及时传送一些紧急数据,因此对于计算机之间的突发式的数据通信,分组交换显然更为合适些。

⑤电路交换的交换的交换设备控制均较简单。

电路交换与分组交换缺点对比

①电路交换的平均连接建立时间对计算机通信来说嫌长。

①尽管分组交换比报文交换的传输时延少,但仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。

②电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用低。

②分组交换中的每个分组都要加上源、目的地址和分组编号等信息,这将增大传送的信息量,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。

③电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。

③当分组交换采用数据报服务时,可能出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作,增加了麻烦。

MTU与路径MTU

以太网和IEEE 802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,Maximum Transmission Unit);如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就要进行分片(Fragmentation),把数据报分成若干片,这样每一片都小于MTU。

当网络上的两台主机互相进行通信时,两台主机之间要经过多个网络,每个网络的链路层可能有不同的MTU,其中两台通信主机路径中的最小MTU被称作路径MTU。

路径MTU的发现方法:

这是确定两个IP主机之间路径最大传输单元的技术,其目的就是为了避免IP分片。首先源地址将数据报的DF(不要分片)位设置为1,再逐渐增大发送的数据报的大小——路径上任何需要将分组进行分片的设备都会将这种数据报丢弃并返回“数据报过大“的ICMP响应到源地址——这样源主机就”学习“到了无需分片就能通过这条路径的最大的最大传输单元。

如何实现“透明传输”?

透明传输的基本概念:数据透明传输就是用户不受协议中的任何限制,可随机的传输任意比特编码的信息, 用户可以完全不必知道协议中所规定的结束段的比特编码或者其他的控制字符,因而不受限制的进行传输。

(1)字符填充

基本思想:发送端在数据中出现的控制字符”SOH”或”EOT”的前面插入一个转义字符”ESC”(其十六进制编码为1B), 而接收端在将接受到的数据送到上层之前删除之前发送端插入的转义字符;

如果转义字符也出现在数据当中, 那么应在转义字符前面插入一个转义字符, 当接收端收到连续的两个转义字符时, 就删除其中前面的一个.

字符填充PPP协议实例: 将信息字段中出现的每一个0x7E字节转换成为2字节序列(0x7D, 0x5E), 若信息字段中出现一个0x7D的字节, 则将其转变成为2字节序列(0x7D, 0x5D). 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符), 则在该字符前面要加入一个0x7D字节, 同时将该字节的编码加以改变;

(2)零比特填充

基本原理:在发送端, 只要发现有5个连续的1, 则立即填入一个0. 接收端对帧中的比特流进行扫描时, 每当发现5个连续的1时, 就把这5个连续的1之后的一个0删除(因为01111110(6个1)表示HDLC数据块的起始和结束,从而构成最终传输的帧).

注意:只要出现了5个连续的1,则必须加上一个0!

CRC循环校验法

在发送端, 先把数据划分为组, 假定每组K个比特(K位), 同时假定待传送的一组数据M=101001(K=6), 我们在M的后面再添加供差错检测用的N位冗余码一起发送.

N位冗余码求解方法:

首先,用二进制的模2运算[一种特殊的运算: 00得1, 11得1, 01得0, 10得0, 但不进位/退位]进行2^N乘M的运算, 这相当于在M后面添加N个0;

然后, 用得到的(K+N)位的数除以事先选定好的长度为(N+1)位的除数P, 得出商为Q且余数是R, 余数R比除数P少1位, 即R是N位;

最后,使用R替换N个0, 即得到要发送的数据.

示例:

假设现在K=6, M=101001, 设N=3, 除数P=1101, 则被除数为(2^N)*M = 101001000, 模2运算的结果为: 商110101, 余数R=001, 因此最终得到需要发送的数据位101001001

接收端校验:

接收端对收到的每一帧进行CRC校验如下:

(1)若得出的余数R=0, 则判定这个帧没有差错, 接受accept;

(2)若得出的余数R!=0, 则判定这个帧有差错, 丢弃abandon.

注意:这种检测方法并不能确定究竟是哪一个/几个比特出了差错, 但是只要经过严格的挑选, 并使用位数足够多的除数P, 那么出现检测不到的差错的概率就很小很小了;

因此仅用循环冗余校验CRC差错检验技术只能做到”无差错接受”.

MAC地址

概念:MAC地址就是在链路层上使用的地址,也叫物理地址、硬件地址或链路地址,其被固化在适配器(网卡)的ROM中。可见MAC地址实际上就是适配器(网卡)地址或标识符。当某台计算机使用某块适配器后,适配器上的标识符就成为该计算机的MAC地址。MAC地址长度为6字节(48比特),由IEEE的注册管理结构RA进行管理分配。

作用:MAC地址是计算机的唯一标识,在数据链路层中,交换机通过识别MAC地址进行数据包的传输。

TCP/IP入门(1)  --链路层

网络设备

1)物理层用到的设备是中继器和集线器

中继器的主要功能是对接收到的信号进行再生整形放大以扩大网络的传输距离(从一个网络电缆中接收信号, 放大它们, 然后将其送入下一个电缆)。

集线器(HUB)就是将网线集中到一起的机器,也就是多台主机和设备的连接器。集线器的主要功能是对接收到的信号进行同步整形放大(同中继器),以扩大网络的传输距离; 与中继器的区别在于集线器能够提供多端口服务,也称为多端口中继器。

2)数据链路层用到的设备是交换机和网桥

交换机是一种基于MAC识别,能完成封装, 转发数据包功能的网络设备。它可以“学习”MAC地址,并把其存放在内部地址表中,当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口。交换机将局域网分为多个冲突域,每个冲突域都是有独立的宽带,因此大大提高了局域网的带宽。

网桥就是个硬件网络协议翻译器, 在网络互联中可起到数据接收、地址过滤与数据转发的作用, 可用来实现多个不同网络系统之间的数据交换。

3)网络层用到的设备是路由器

路由器用于连接多个逻辑上分开的网络,具有路由和转发的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网(我们将在网络层对路由器有更详尽的描述)。

4)应用层用到的设备是网关

网关(协议转换器)是在网络层之上的具有协议转换功能的设施,所以称为设施,是因为网关不一定是一台设备,有可能在一台主机中实现网关功能。

网关分类:

  1)协议网关:协议网关通常在使用不同协议的网络区域间做协议转换。

  2)应用网关:应用网关是在使用不同数据格式间翻译数据的系统。

  3)安全网关:安全网关是各种技术的融合,具有重要且独特的保护作用,其范围从协议级过滤到十分复杂的应用级过滤。