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

原文地址:http://blog.sina.com.cn/s/blog_4c0b7a1b0100gyux.html

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

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

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

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

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

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

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

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

协议栈

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

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

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

2. 网上传输的数据格式

2.1  TCP报文段的格式

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

图4 TCP报文段的格式

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

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

2.2  IP数据报的格式

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

图5 IP数据报头部的组成

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

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

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

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

图6 以太网II的帧格式

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/tq384998430/article/details/87976692