传输层TCP/UDP协议

一、TCP协议介绍

  • TCP向上层提供面向连接的可靠服务 ,TCP是可靠的进程到进程通信的协议
  • TCP提供全双工服务,即数据可以在同一时间双向传输
  • UDP向上层提供无连接不可靠服务。

二、TCP报文格式

在这里插入图片描述

(1)源端口:源端口和IP地址的作用是标识报文的返回地址。
(2)目的端口:端口指明接收方计算机上的应用程序接口。
(3)序号和确认号:是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号。
(4)确认号,即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK标志为1时才有效。
(5)数据偏移/首部长度:4bits。由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*32/8 = 60,故报头最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。
(6)保留:为将来定义新的用途保留,现在一般置0。
(7)控制位:URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能。
① URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
② ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
③ PSH:push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
④ RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
⑤ SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
⑥ FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
(8)窗口:滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小时一个16bit字段,因而窗口大小最大为65535。
(9)校验和:奇偶校验,此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据,以 16 位字进行计算所得。由发送端计算和存储,并由接收端进行验证。
(10)紧急指针:只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。
(12)选项和填充:最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入额外的零,以保证TCP头是32的整数倍。
(13)数据部分: TCP 报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。

三、TCP三次握手

TCP三次握手原理:如下图所示,客户端向服务器发送SYN同步请求,请求与服务器建立连接,服务器收到此SYN同步请求后,会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,当客户端收到服务器发过来的SYN同步请求时,会给予一个ACK响应。
在这里插入图片描述
为什么要三次握手?
因为TCP是可靠的传输层协议,它在传输数据前,会建立双向数据通信通道,当保证双向数据传输的通道没有问题时,才会发送数据,起到保护数据的作用。|

四、TCP四次挥手

TCP四次挥手原理:客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复–个ACK。服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK。
在这里插入图片描述
为什么三次握手握手三次,为什么挥手挥手四次?
数据传输方向是双向的,一个方向的数据通道关闭需要一次请求和一次确认,因此需要断两次,而我们有两个数据方向,因此需要断四次。 三次握手中服务器端确认和请求客户端在一个过程中。
什么是TCP半关闭状态?
客户机向服务器发送了FIN请求,服务器也给予了ACK响应。但是,服务器和客户机之间还有数据要传输,因此服务器没有向客户机立即发送FIN请求。

五、常见协议及端口号

端口协议说明
21FTP文件上传、下载
23Telnet用于远程登录,可以远程控制管理目标计算机
25SMTP用于发送邮件
80HTTP超文本传输
110POP3用于接收邮件

客户端根据需要哪种服务,从而发送到特定的目的端口,端口划分为三个类别,其范围介于1到65,535之间。
1、公认端口:与通用网络应用程序相关联的目的端口称为公认端口,这些端口的范围从1到1023。
2、注册端:端口1024到49151可作为源端口或目的端口使用。组织可使用这些端口注册即时消息等应用程序。
3、私有端口:端口49152到65535通常作为源端口使用。

六、UDP协议以及常见端口号

特点:
无连接、不可靠的传输协议;
花费的开销小

端口协议说明
69TFTP简单文件传输协议
111RPC远程过程调用
123NTP网络时间协议

七、总结

1、三次握手和四次挥手的具体过程以及常见协议端口号。
2、UDP协议:
无连接、不可靠的传输协议;
花费的开销小
3、TCP协议:
面向连接的可靠的传输层协议;
有分段、重组、重传机制
有滑动窗口控制流量
适用于可靠性较高的场合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值