tcp/ip详解卷1:协议 读书笔记 链路层

一、TCP/IP协议族中,链路层的主要目的:

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

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

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

TCP/IP支持多种不同的链路层协议,这取决于网络使用的硬件,如以太网、令牌环网、FDDI及RS-232串行线路等。

使用ifconfig命令

eth0      Link encap:Ethernet  HWaddr 00:0c:29:e9:44:34 
          inet addr:192.168.1.88  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 2001:da8:208:191:20c:29ff:fee9:4434/64 Scope:Global
          inet6 addr: 2001:da8:208:164:20c:29ff:fee9:4434/64 Scope:Global
          inet6 addr: fe80::20c:29ff:fee9:4434/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2268618 errors:0 dropped:0 overruns:0 frame:0
          TX packets:590431 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:281512986 (281.5 MB)  TX bytes:389527678 (389.5 MB)
          Interrupt:19 Base address:0x2000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:212 errors:0 dropped:0 overruns:0 frame:0
          TX packets:212 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:23780 (23.7 KB)  TX bytes:23780 (23.7 KB)
eth0就是以太网接口,而lo则是loopback接口。这也说明这个主机在网络链路层上至少支持loopback协议和以太网协议。可以观察到eth0的MTU是1500。而lo(环回接口)的MTU则是16436

二、以太网和IEEE 802

以太网这个术语一般是指数字设备公司(Digital Equipment Corp)、英特尔公司和Xerox公司在1982年联合发布一个标准。他是当今TCP/IP采用的主要的局域网技术。它采用一种称作CSMA/CD的媒体介入方法,就是带冲突检测的载波侦听多路介入。几年后IEEE802委员会公布一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络,这三者的共同特性由802.2标准定义。但是802.2和802.3定义一个与以太网不同的帧格式。

在TCP/IP中,以太网IP数据报的封装是在RFC894中定义,IEEE802网络的IP数据报封装是在RFC1042中定义的。

在TCP/IP中主机需求RFC要求每台Internet主机都与一个10Mb/s的以太网电缆相连,且要求以下:

1)必须能发送和接受采用RFC894封装格式的分组。

2)应该能接受与RFC1042封装格式的分组。

3)也许能够发送采用RFC1042格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC894分组。

可见,RFC1042在TCP/IP里面处于一个配角的地位。这两种不同的数据报格式请参考教材。

 

三、MTU

以太网和802.3对数据帧的长度都有一个限制,其最大值分别为1500和1492字节。链路层的这个特性称作MTU,最大传输单元

每一种数据链路层协议,都有一个MTU(最大传输单元)定义,在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation),使得每片都小于MTU。PPP的MTU并非指的是网络媒体的物理特性,而是一个逻辑限制,目的是为了交互使用提供足够快的响应时间。

netstat -in 列举出网络接口的MTU

Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0   2269230      0      0 0        590431      0      0      0 BMRU
lo        16436 0       212      0      0 0           212      0      0      0 LRU

当在同一个网络上的两台主机相互进行通信时,该网络的MTU是非常重要的。如果两台主机之间的通信要通过很多网络,那么每个网络的链路层就可能有不同的MTU,重要的不是两台主机所在网络的MTU的值,而是两台通信主机路径中的最小MTU,这被称为路径MTU。两台主机之间的路径MTU不一定是个常数,它取决于当时所选择的路由。而选路不一定是对称的(从A到B的路由可能与从B到A得路由不同),因此路径MTU在两个方向上不一定是一致的。

 

四、回环接口

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

回环接口处理IP数据报的简单过程在P20。

一个传给回环接口的IP数据报不能在任何网络上出现。也可以看出送给主机本省的IP地址的IP数据报一般不出现在相应的网络上。

你可能感兴趣的:(tcp/ip详解卷1:协议 读书笔记 链路层)