第二章 传输层TCP UDP

一.概述

TCP传输控制协议 (Transmission Control Protocol)。

TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字是一种流套接字(streamsocket)。TCP关心确认、超时和重传之类的细节。大多数因特网应用程序使用TCP。注意,TCP既可以使用IPv4,也可以使用IPv6。

UDP用户数据报协议 (User Datagram Protocol)。

UDP是一个无连接协议。UDP套接字是一种数据报套接字 (datagram socket)。UDP数据报不能保证最终到达它们的目的地。与TCP一样,UDP既可以使用IPv4,也可以使用IPv6。

二.用户数据包协议UDP

UDP是一个简单的传输层协议,。应用进程往一个UDP套接字写入一个消息,该消息随后被封装 (encapsulating) 到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后发送到目的地。UDP不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。
我们也说UDP提供无连接的 (connectionless)服务,因为UDP客户与服务器之间不必存在

任何长期的关系。举例来说,一个UDP客户可以创建一个套接字并发送一个数据报给一个给定
的服务器,然后立即用同一个套接字发送另一个数据报给另一个服务器。同样地,一个UDP服
务器可以用同一个UDP套接字从若干个不同的客户接收数据报,每个客户一个数据报。

三.传输控制协议TCP

1.TCP通过给其中每字节关联一个序列号对所发送的数据进行排序 (sequencing)。举例来说,

假设一个应用写2048字节到一个TCP套接字,导致TCP发送2个分节:第一个分节所含数据的序
列号为1~1024,第二个分节所含数据的序列号为1025~2048。(分节是TCP传递给IP的数据单
元。)如果这些分节非顺序到达,接收端TCP将先根据它们的序列号重新排序,再把结果数据传
递给接收应用。如果接收端TCP接收到来自对端的重复数据(譬如说对端认为一个分节已丢失
并因此重传,而这个分节并没有真正丢失,只是网络通信过于拥挤),它可以(根据序列号)判
定数据是重复的,从而丢弃重复数据。

2.再次,TCP提供流量控制(flow control)。TCP总是告知对端在任何时刻它一次能够从对端

接收多少字节的数据,这称为通告窗口 (advertised window)。在任何时刻,该窗口指出接收缓
冲区中当前可用的空间量,从而确保发送端发送的数据不会使接收缓冲区溢出。该窗口时刻动
态变化:当接收到来自发送端的数据时,窗口大小就减小,但是当接收端应用从缓冲区中读取
数据时,窗口大小就增大。通告窗口大小减小到0是有可能的:当TCP对应某个套接字的接收缓
冲区已满,导致它必须等待应用从该缓冲区读取数据时,方能从对端再接收数据。

3.最后,TCP连接是全双工的(full-duplex)。这意味着在一个给定的连接上应用可以在任何时刻在进出两个方向上既发送数据又接收数据。因此,TCP必须为每个数据流方向跟踪诸如序列号和通告窗口大小等状态信息。建立一个全双工连接后,需要的话可以把它转换成一个单工

连接(见6.6节)。

四.TCP连接的建立和终止

相关推荐
龙仔72511 小时前
在麒麟V10服务器安全加固,sshd防暴力破解加固,实现“密码错误3次封IP”的需求
服务器·tcp/ip·安全
白太岁12 小时前
通信:(5) 电路交换、报文交换与分组交换
运维·服务器·网络·网络协议
EasyGBS13 小时前
国标安全升级:GB28181平台EasyGBS支持GB35114协议的应用场景与核心优势
网络协议·安全·gb28181·gb35114
凯酱15 小时前
Windows防火墙入站规则IP白名单
windows·网络协议·tcp/ip
稻草猫.15 小时前
TCP与UDP:传输层协议深度解析
笔记·后端·网络协议
上海云盾王帅15 小时前
从底层守护:深度解析四层协议(TCP/UDP)的DDoS防护之道
tcp/ip·udp·ddos
IP搭子来一个16 小时前
独享IP和共享IP怎么选?全面对比解析
运维·网络·tcp/ip
科技块儿16 小时前
如何用离线库秒筛“数据中心”IP段并自动封号?
网络·网络协议·tcp/ip
上海云盾第一敬业销售17 小时前
选择最佳高防CDN与高防IP服务以保证网站安全
网络协议·tcp/ip·安全
傻啦嘿哟17 小时前
免费代理IP获取与验证:实战爬取代理网站并筛选可用IP
网络·网络协议·tcp/ip