目录
一.TCP/IP协议族的传输层协议
1.TCP传输控制协议
2.UDP用户数据报协议
二.TCP协议
TCP是面向连接的,可靠的进程到进程通信的协议
提供全双工服务,即数据可在同一时间双向传输
2.TCP报文段
TCP将若干个字节构成一个分组,叫报文段(Segment)
TCP报文段封装在IP数据报中
源端口号:客户端,
目标端口号,服务端
序号:发送端为每个字节进行编号,便于接收端正确重组
确认号:用于确认发送端的信息
窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的
SYN:同步序列位。TCP需要建立连接时将该值设为1(三次握手)
ACK:确认序号位,当该位为1时,用于确认发送方的数据
FIN:当TCP断开连接时将该位置为1(四次断开)
三.三次握手
TCP建立连接的过程称为三次握手
1.PC1发送SYN报文(Seq=x,SYN=1)
2.PC2发送SYN+ACK报文(Seq=y,Ack=x+1,SYN=1,ACK=1)
3.PC1发送ACK报文(Seq=x+1,Ack=y+1,ACK=1)
原理:
客户端向服务器发送SYN同步请求,请求与服务器建立连接,服务器收到此SYN同步请求后,会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,当客户端收到服务器发过来的SYN同步请求时,会给与一个ACK响应。
为什么要三次握手?
因为TCP时可靠的传输层协议,它在传输数据前,会建立双向数据通信通道,当保证双向数据传输的通道没有问题时,才会发送数据,起到保护数据的作用。
四.四次挥手
1.PC1发送FIN/ACK(FIN=1,ACK=1)
2.PC2发送ACK报文(ACK=1)
3.PC2发送FIN/ACK(FIN=1,ACK=1)
4.PC1发送ACK报文(ACK=1)
原理
客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复一个ACK。服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK
三次握手握三次,为什么断开要断四次
数据传输方向是双向的,一个方向的数据通道关闭需要一次请求和一次确认,因此需要断两次,而我们有两个数据方向,因此需要断四次
TCP半关闭状态时什么情况?
客户机向服务器发送了FIN请求,服务器也给与了ACK响应。但是,服务器向客户机方向还有数据要传,因此服务器并没有向客户机立即发送FIN请求。
五.常用的TCP端口号及其功能
公认端口-服务器,注册端口-服务器或客户机,私有端口-客户机 ,服务器端口小,客户机大
六.UDP协议
无连接、不可靠的传输协议
花费的开销小
传输效率高
1.UDP报文的首部格式
2.常用的UPD端口号及其功能
总结
TCP协议的三次握手和四次挥手
常用的TCP端口号及其范围
两者区别
TCP:面向连接,可靠的传输层协议
分段,重组,重传
滑动窗口
适用于对可靠性要求较高的场合
UDP:
无连接、不可靠的传输协议
花费的开销小
传输效率高