Table of Contents
1.1分层
网络协议层通常分不同层次进行开发,每一层分别负责不同的通信功能,一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议。
每一层负责不同的功能:
1)链路层,有时,也被称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆的物理接口细节。
2)网络层,有时也被称作互联网层,处理分组在网络中活动,例如分组选路。在TCP/IP协议族中,网络层协议包括IP(网际协议)、ICMP协议(Internet互联网控制报文协议),IGMP协议
3)运输层,主要为两台主机上应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议TCP(传输控制协议)和UDP(用户数据报协议)。
TCP把应用程序交给它的数据分成合适的小块交给下面的网络层,确定接收到的分组,设置发送最后确认分组的超时时钟等,UDP则为传输层提供一种简单的服务,它只是把称作数据报的分组从一台主机转发到另一台上,但是不保证一定能发送成功。可靠性必须要应用层来确认。
4)应用层,
Telnet远程登陆
FTP文件传输协议
SMTP简单邮件传送协议
SNMP简单网络管理协议
两台主机路由器间通信:
1.2 TCP/IP分层
TCP/UDP是最著名的运输层协议,二者都使用IP作为网络协议。
TCP使用的不可靠的IP服务提供可靠的运输层服务。
1.3互联网地址
五类互联网地址1.4封装
当应用程序用TCP传送数据时,数据被送到协议栈中,然后逐个通过每一层直到被当作一串比特流传送到互联网上。其中每过一层协议层就会多增加一些首部信息(有时候是尾部信息)
数据入协议栈的封装过程1.5分用
以太网数据帧的分用过程1.6应用编程接口
使用TCP/IP协议的应用程序通常采用这两种编程接口(API):socket和TLI(运输层接口)。
链路层
2.1引言
在TCP/IP协议族中,链路层主要有三个目的:
1)为IP模块发送和接收IP数据报
2)为ARP模块发送ARP请求和接收ARP应答
3)为RARP发送RARP请求和接收RARP应答
TCP/IP支持多种链路层协议,这协议取决于硬件,以太网,令牌环网, FDDI(光纤分布式数据接口)及 R S-2 3 2串行线路等。
以下主要讲以太网链路层协议,还有两个串行接口链路层协议(S L I P和P P P),以及大多数实现包含的环回驱动程序。
2.2以太网和IEEE 802封装(电子电气工程协会)
在TCP/IP世界中,以太网I P数据报的封装是在RFC 894[Hornig 1984]中定义的, IEEE 802网络的I P数据报封装是在RFC 1042[Postel and Reynolds 1988]中定义的。主机需求 R F C要求每台I n t e r n e t主机都与一个10 Mb/s的以太网电缆相连接:
1)必须能发送和接收采用 RFC 894(以太网)封装格式的分组。
2)应该能接收与RFC 894混合的RFC 1042(IEEE 802)封装格式的分组。
3)也许能够发送采用 RFC 1042格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是 RFC 894分组。
最常使用的封装格式是 RFC 894定义的格式
2.2换回接口
大多数产品都支持换回接口(Loopback Interface),以允许同一台电脑上的客户端程序和服务器程序通过TCP/IP进行通信。A类网络号127就是为环回接口预留的。按照惯例都是127.0.0.1分配给这个接口,并命名为localhost。
环回接口处理IP数据报2.3最大传输单元MTU
以太网和802.3对数据帧的长度都有限制,最大值分别是1500和1492Byte。链路层称这个为MTU。最大传输单元。不同类型的网络都有一个上限。
几种常见的最大传输单元MTU如果IP层有一个数据要传,而且数据长度比链路层的MTU还大,那么IP层需要分片,把数据报分成诺干片,这样每一片都小于MTU。
第三章 IP:网际协议
3.1IP首部
IP数据报格式及首部中的各字段4个字节的32 bit值以下面的次序传输:首先是 0~7 bit,其次8~15 bit,然后1 6~23 bit,最后是24~31 bit。这种传输次序称作 big endian字节序。由于T C P / I P首部中所有的二进制整数,在网络中传输时都要求以这种次序,因此它又称作网络字节序。以其他形式存储二进制整数的机器,如little endian格式,则必须在传输数据之前把首部转换成网络字节序。
1)版本:目前的协议版本号是 4,因此I P有时也称作I P v 4。
2)首部长度指的是首部占 32 bit字的数目,包括任何选项。由于它是一个 4比特字段,因此,首部最长为6 0个字节。在第8章中,我们将看到这种限制使某些选项如路由记录选项在当今已,没有什么用处。普通 I P数据报(没有任何选择项)字段的值是 5。
3)服务类型(TO S)字段包括一个 3 bit的优先权子字段(现在已被忽略), 4 bit的TO S子字段和1 bit未用位但必须置 0。 4 bit的TO S分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。 4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。 RFC 1340[Reynolds and Postel 1992] 描述了所有的标准应用如何设置这些服务类型。 RFC 1349
[Almquist 1992]对该R F C进行了修正,更为详细地描述了 TO S的特性。