数据以分组的形式在网络上传输,突发数据脉冲的最大长度由链路层决定,每个包都由包头和有效荷载组成。 在以太网导线上,它用一个简单的枕头封装成帧,这个帧头列出了源和下一跳目的地的硬件地址,帧的长度以及帧的校验和。
如果包被路由通过几个网络,其中一个中间网络的MTU可能比源网络的MTU小。在这种情况下,将包转发到MTU较小的网络的路由器会进一步细分包,这个过程叫做分片。对于繁忙的路由器而言,分片是一项不受欢迎的工作。
最底层的寻址机制是由网络硬件决定的。例如,以太网设备在制造的时候就分得了一个唯一的6字节硬件地址。
Linux能让你改变以太网接口的硬件地址,但是请不要这样做,它能破坏防火墙和某些DHCP实现。不过如果您不得不替换一台坏机器或网卡,而出于某些原因又必须使用原来的MAC地址,这一特性就显出了它的方便之处了。
IP地址和硬件地址之间的映射是在TCP/IP模型的链路层中实现的。在支持广播的网络上(即允许将包发送至“这个物理网络的所有主机”),ARP协议可以不需要系统管理员的帮助而自动发现双方的映射关系。
由于IP地址很长,显得像一个随机数字,所以人们往往很难记住他。Linux系统可以把一个或者多个主机名和IP地址联系起来,这样用户可以键入yahoo.com来代替键入216.115.108.245。这种映射关系可以用多种不同的方法建立,从一个静态文件(/etc/hosts)到NIS数据库系统再到世界范围内的域名系统。请记住,主机名只是IP地址为方便起见而又的一种缩写。
IP地址表示了计算机,或者更精确地说,标识了计算机上的网络接口。他们并不具有足够的特异性来确定特定进程或服务的地址。TCP和UDP用“端口”的概念扩展了IP地址。端口是16比特位的数字,它对IP地址进行了补充,用它指定了一个特定的通信通道。标准的服务,如电子邮件,FTP,和远程登陆服务器都与/etc/services文件里定义的“知名”端口相关。为了避免假冒这些服务,Linux系统系那只服务程序绑定到端口号低于1024的端口上,除非他们是以root身份运行的。
在IP层和链路层上都定义了几种不同类型的地址:
单播——代表一台主机(实际上是网络接口)的地址;多播——标识一组主机的地址;广播——包括本地网络上所有主机的地址;多播寻址有助于实现视频会议系统这样的应用,在这些应用中,同一组包必须发送给所有的参加者。ICMP(Internet Group Management Protocol,网络组管理协议)用于建立和管理主机组,把他们按照多播目的地来对待。多播IP地址从224-239之间的一个字节开始。 广播地用一种通配形式的特殊地址(主机部分的二进制位都是1)联络到本地网络上所有主机。