您的位置:首页 > 理论基础 > 计算机网络

TCP、UDP、IP 协议分析

2017-01-17 00:00 417 查看


一. TCP协议

TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。



(1)三次握手建立连接

a.请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN,在这个例子中为1415531521)。这个SYN段为报文段1。

b.服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答。同时,将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认。一个SYN将占用一个序号

c.客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)

这三个报文段完成连接的建立。这个过程也称为三次握手(three-way handshake)



(2)四次挥手断开连接

a.现在的网络通信都是基于socket实现的,当客户端将自己的socket进行关闭时,内核协议栈会向服务器自动发送一个FIN置位的包,请求断开连接。我们称首先发起断开请求的一方称为主动断开方。

b.服务器端收到请客端的FIN断开请求后,内核协议栈会立即发送一个ACK包作为应答,表示已经收到客户端的请求

c.服务器运行一段时间后,关闭了自己的socket。这个时候内核协议栈会向客户端发送一个FIN置位的包,请求断开连接

d.客户端收到服务端发来的FIN断开请求后,会发送一个ACK做出应答,表示已经收到服务端的请求



(3)TCP可靠性的保证

TCP采用一种名为“带重传功能的肯定确认(positive acknowledge with retransmission)”的技术作为提供可靠数据传输服务的基础。这项技术要求接收方收到数据之后向源站回送确认信息ACK。发送方对发出的每个分组都保存一份记录,在发送下一个分组之前等待确认信息。发送方还在送出分组的同时启动一个定时器,并在定时器的定时期满而确认信息还没有到达的情况下,重发刚才发出的分组。图3-5表示带重传功能的肯定确认协议传输数据的情况,图3-6表示分组丢失引起超时和重传。为了避免由于网络延迟引起迟到的确认和重复的确认,协议规定在确认信息中稍带一个分组的序号,使接收方能正确将分组与确认关联起来。

从图 3-5可以看出,虽然网络具有同时进行双向通信的能力,但由于在接到前一个分组的确认信息之前必须推迟下一个分组的发送,简单的肯定确认协议浪费了大量宝贵的网络带宽。为此, TCP使用滑动窗口的机制来提高网络吞吐量,同时解决端到端的流量控制。



二、UDP协议

UDP协议也是传输层协议,它是无连接,不保证可靠的传输层协议。它的协议头比较简单,如下:



这里的端口号就不解释了,和TCP的端口号是一样的含义。

Length占用2个字节,标识UDP头的长度。

Checksum : 校验和,包含UDP头和数据部分。

三、IP协议

I P是T C P / I P协议族中最为核心的协议。所有的T C P、U D P、I C M P及I G M P数据都以I P数据

报格式传输。它的特点如下:

不可靠(u n r e l i a b l e)的意思是它不能保证 I P数据报能成功地到达目的地。 I P仅提供最好

的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, I P有一个简单
7fe0
的错误

处理算法:丢弃该数据报,然后发送 I C M P消息报给信源端。任何要求的可靠性必须由上层来

提供(如T C P) 。

无连接(c o n n e c t i o n l e s s)这个术语的意思是I P并不维护任何关于后续数据报的状态信息。

每个数据报的处理是相互独立的。这也说明, I P数据报可以不按发送顺序接收。如果一信源

向相同的信宿发送两个连续的数据报(先是 A,然后是B) ,每个数据报都是独立地进行路由

选择,可能选择不同的路线,因此B可能在A到达之前先到达。

IP 头格式

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tcp/ip