UNP(一):网络编程角度下的TCP、UDP协议

本文是UNP学习笔记,从网络编程视角探讨TCP和UDP协议。TCP提供可靠传输、流量控制,通过三次握手建立连接,而UDP则是无连接、不可靠的数据报协议。TCP连接的建立和终止涉及状态转换,包括TIME_WAIT状态的作用。此外,讨论了TCP端口号和并发服务器,以及缓存区大小与限制。

此博文是学习UNP(UNIX Network Programming)后的读书笔记,供以后自己翻阅回顾知识。

  1. TCP、UDP概述
    在前面《计算机网络与TCP/IP》栏目下已经介绍过一些关于TCP、UDP的相关知识TCP/IP(三):传输层TCP与UDP,这里只是简单从UNIX网络编程的角度介绍TCP、UDP协议。

    我们都知道UDP 缺乏可靠性无连接的面向数据报 的协议,如果想确保数据报到达目的地,必须自己在应用层实现一些特性:对端的确定、本端的超时和重传等。UDP面向报文的特性,使得UDP不像TCP中可以通过设置MSS(最大分节大小)避免IP层分片,UDP中没有相应的措施避免在IP层中进行分片,所以在使用UDP中,应该控制传输数据报的大小,避免分片,但是数据报太小,利用率低,应该合理规划。

    相反,TCP提供 可靠的传输服务、流量控制、面向字节流、连接的协议, 通过超时重传、确认等手段实现可靠的传输服务,TCP中含有动态估算客户和服务器之间的往返时间(round-trip time RTT)的算法,知道等待确认需要多少时间。TCP中对所发送数据中的每个字节进行排序(序列号), 例如一个应用写2048字节到一个TCP套接字,导致TCP发送2个分节,一个分节发送序列号为1~1024的数据,一个分节发送序列号为1025~2048的数据, 接收端会对数据的序列号进行排序组合(各个分节可能非顺序到达目的端),保证数据的正确性,同时如果分节在传输的过程中丢失,发送端应该超时重传,对于重复的分节,接收端有能力丢弃重复的分节。TCP总是告知对端任何时刻它一次能从对端接收多少字节的数据,这称为通告窗口,该窗口指出接收缓冲区中当前可用的空间量,从而保证发送端发送的数据不会使接收缓冲区溢出。通过此种方式提供流量的控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值