当前位置:文档之家› TCPIP协议族的体系结构、数据格式及传输过程

TCPIP协议族的体系结构、数据格式及传输过程

在计算机网络里,两台计算机之间如何沟通呢?这就需要为网上的所有计算机制定通信协议了。那什么是协议呢?

协议规定了网络上的所有通信设备,尤其是一个计算机与另一个计算机之间的数据往来格式、数据的含义和交互过程的控制顺序。

网络用户要把自然语言写成的邮件从一个计算机发到网上另一个计算机(这是一个网络应用),但网线上只能传递电压信号,哪么应该如何实现这一网络通信呢?看来要把自然语言的邮件变成一个个的电压信号,得做许多工作,比如发方要做:

规定邮件的格式、自然语言的编码标准、把邮件分成一个个的数据段(数据段=发放地址+收方的地址+数据)、子网内的交换、内外网之间的路径选择、把数据信号转换成电压信号,还要保证传输数据的正确性。

网上的每个计算机都有地址,用户看到的计算机名是逻辑的如“张三的计算机”、“李四的计算机”、“客户信息数据库”等,得需要找到它们对应的网上的门牌号(IP地址)、在子网内交换时还应进一步找到与它们的IP地址对应的网卡的MAC地址。

收方的工作顺序正好与发放的顺序相反。

由此可见,在计算机网上要发一封邮件,得需要很多工作,也需要很多标准(或者说协议)。因此TCP/IP协议族应运而生。

1. TCP/IP协议族的体系结构

图1的右边是TCP/IP的体系结构,可以看出TCP/IP不是一个单独的协议,而是由多个协议组成的协议族,这些协议从高到低分四层,分别规定了满足网络用户需求的应用层协议、信息传输层协议、网络互联层协议以及面向物理链路的网络接口层协议。

图1的左边是OSI七层模型,图1给出了OSI七层模型与TCP/IP协议族之间的对应关系。

图1 TCP/IP体系结构与OSI体系结构

图2说明了我们常用的以太网协议IEEE802与OSI的对应关系。

图2 局域网和城域网体系结构的参考模型(L&MAN/RM)

协议栈

当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),TCP传给IP的数据单元称作TCP消息段或简称为TCP段(TCP segment)。IP传给网络接口层的数据单元称作IP数据报(IP Datagram)。通过以太网传输的比特流称作帧(Frame)。如图3所示。

图3 数据进入协议栈时的封装过程

2.网上传输的数据格式

2.1 TCP报文段的格式

图4 TCP报文段的格式

虽然图4中TCP报文的长度字段均为16位,因此TCP报文可以长达64KB,但是TCP报文太长,在下层IP层传输时要分解成多个短数据段,再加上封装/拆装,导致网络传输效率降低。如果TCP报文的长度过短,也会导致网络传输效率降低。一般TCP报文的长度取536字节净负荷。

IP数据报也有同样的问题及其解决思路。

2.2 IP数据报的格式

图5 IP数据报头部的组成

2.3 以太网II(Ethernet V2)的帧格式

以太网II的帧是用于IP数据报在以太网中传输的约定俗成的标准帧类型。以太网II帧格式里的序言为以太网回路建立必需的定时机制以识别和开始读取传入的数据。信宿地址为接收方网卡的MAC地址。源地址为发送方网卡的MAC地址。

协议标识域(Type)域,标明了使用该帧的上一层协议,例如Type值0x0800表明使用该帧的协议是IP协议。

图6 以太网II的帧格式

以太网II的帧的有效载荷的长度在64到1518字节之间。

3.使用TCP协议通信的过程

主机A和主机B使用TCP协议通信时先按图 7的方式建立连接,然后再传数据,传完后解除连接。

图7 用三次握手建立TCP连接

主机B应答的信息中,ack=x+l中的x是通信发起方(主机A)设定的一个初始序号,应答方(主机B)应答此序号表明应答方确实收到了发起方的信息,据此预防冒充者应答,因冒充者收不到发起方的报文,不知道x的值。发起方再回复y+1予以确认。下面就可以正式通信了。

相关主题