TCP、UDP的初次了解

[img]http://dl.iteye.com/upload/attachment/448248/6f276c30-c15a-3f69-8843-0bff90857ab5.jpg[/img]
ACK:用于指示确认号中的值有效,即该报文首部包括一个对已被成功接收报文段的确认。
RST、SYN、FIN:连接建立和拆除。
PSH:指示接收方应立即将数据交给上层。
URG:指示报文段存在着被发送方的上层实体置为“紧急”的数据。

[img]http://dl.iteye.com/upload/attachment/448250/9bdb3caa-1c96-3b83-99be-19f302451e84.jpg[/img]
TCP 与 UDP的区别:
简单地讲,TCP建立了端与端的管道,有连接的,连接建立之后,才能传应用数据。包括了差错检测、重传、累积确认、定时器以及用于序号和确认号的首部字段。所以,是可靠的,但也由于这些机制,会产生网络阻塞,所以,速度慢。

UDP,无连接,不需要创建两者之间的管道。所以,无阻塞机制,无连接时延,速度快,但不可靠,会丢失数据,适合于要求速度快、丢失数据不影响的传输。


TCP的连接:三次握手(three-way-handshake)
简单地讲:
1.客户机向服务器发送连接请求。
2.服务器收到客户机的请求之后,向客户机发送“收到你的连接请求,同意建立连接”的消息。
3.客户机向服务器发送“收到了服务器的收到确认”的确认消息。
其中:
第一步:客户机发送的报文段,不包含应用层数据。首部中的SYN=1。客户端并选择一个起始序号(client_isn),放入到首部中的序号中。

第二步:服务器收到后,为该TCP连接分配TCP缓存和变量。发送允许连接的报文段,不包括应用层数据,SYN=1,确认号被置为(client_isn+1),服务器选择自己的初始序号(server_isn)。

第三步:客户机收到后,也给该连接分配缓存和变量。向服务器发送确认报文段,对服务器允许连接的报文段进行确认,首部的确认字段为server_isn+1。此时连接已经建立,所以首部中的SYN=0。
上述3步完成以后,两者就可以互发含有数据的报文段了。


TCP连接的断开:四次挥手
第一步:客户端向服务器发送特殊的TCP报文段,FIN=1。
第二步:服务器收到后,向客户机发送一个确认报文段。
第三步:服务器发送自己的连接终止报文段,FIN=1.
第四步:客户端对这个服务器的终止报文段进行确认。
上述4步完成后,两台主机用于该连接的所有资源都被释放了。
由于TCP是在一个管道内,双向都可以发送数据,所以每个方向必须单独地进行关闭。一方断开,需要发送2次;双方断开,就需要四次。当一方完成自己的数据发送任务后,就发送FIN=1,来终止这个方向的连接。另一端收到FIN=1后,通知应用层:对方终止了那个方向的数据传送。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值