目录
传输层协议TCP和UDP
一、TCP
TCP协议——6
传输控制协议
UDP协议——17
用户数据报协议
TCP协议
TCP是面向连接的,可靠的进程到进程通信的协议
TCP提供全双工服务,即数据可在同一时间双向传输
TCP报文
TCP将若干个字节构成一个分组,叫报分段(Segment)
TCP报文封装在IP数据报中
TCP报文段
图-1
序号:发送端为每个字节进行编号,便于接收端正确重组
确认号:用于确认发送端的信息
窗口大小:用于说明本地可以接收数段的数目,窗口大小是可变的
SYN:同步序号为,TCP需要建立连接时将数值设为1
ACK:确认序号为,当该位为1时,用于确认发送方的数据
FIN:当TCP断开连接时该位置为1
TCP建立连接的过程称为三次握手
三次握手原理
客户端向服务器发送SYN同步请求,请求与服务器建立链接,服务器收到此SYN同步请求后,
会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,当客户端收到服务器发过来的SYN同步请求时,会给予一个ACK响应
图-2
为什么要进行三次握手
因为TCP是可靠的传输层协议,它在传输数据前,会建立双向数据通信通道,当保护双向数据传输的通道没有问题时,才会发送数据,起到保护数据的作用
TCP断开连接的四次挥手
四次断开原理
客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复一个ACK。服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK
图-3
三次握手握三次,为什么断开要断四次?
数据传输是双向的,一个方向的数据通道关闭需要一次请求和一次确认,因此需要断两次而我们有两个数据方向,因此需要断开四次
TCP半关闭状态是什么情况?
客户机向服务器发送了FIN请求,服务器也给予了ACK响应,但是服务器和客户机之间还有数据要传输,因此服务器并没有向客户机立即发送FIN请求4
常用的TCP端口号及其功能
端口 协议 说明
21 FTP FTP服务器所开放的控制端口
23 TELNET 用于远程登录,可以远程登录管理目标计算机
25 SMTP SMTP服务器开放的端口,用于发送邮件
80 HTTP 超文本传输协议
110 POP3 用于邮件的接收
图-4
端口号划分为三类
范围1-65535
公认端口:1-1023
与通用网络应用程序相关联的目的端口(服务器)
注册端口:1024-49151
可作为源端口或目的端口使用
私有端口:49152-65535
作为源端口使用
二、UDP
UDP协议
无连接、不可靠的传输协议
花费的开销小
传输效率高
TCP协议
面向连接,可靠的传输协议
分段,重组,重传,滑动窗口
适用于对可靠性较高的场合
图-5
UDP报文的首部格式
源端口号(16)+目标端口号(16)
UDP长度(16)+UDP校验和(16)
UDP长度:用来指UDP的总长度,为首部加上数据
图-6
常用的UDP端口号及其功能
端口 协议 说明
69 TFTP 简单文件传输协议
111 RPC 远程过程调用
123 NTP 网络时间协议
三、总结
1.TCP建立连接是三次,而断开连接是四次
2.TCP的协议号是6,UDP的协议号是17