传输层协议之TCP三次握手

1.TCP协议与UDP协议

  • TCP协议:传输控制协议
  • UDP协议:用户数据报协议

1.1TCP协议与UDP协议的区别

  • TCP协议是面向连接的,可靠的,进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输。每一个TCP都有发送缓存和接收缓存,用来临时存储数据。
  • UDP协议是无连接的,不保证可靠性的传输层协议。发送方不关心传输的数据是否到达目标主机,数据是否出错等,收到数据的主机也不会告诉发送发是否收到了数据,它的可靠性由上层协议来保障。传输数据速度更快,效率更高。

1.2TCP报文段

TCP报文段:TCP将若干个字节构成一个分组叫报文段;TCP报文段封装在IP数据报中。

  • 序号:发送端位每个字节进行编号,便于接收端进行重组
  • 确认号:用于确认发送端的信息
  • 窗口大小:用于说明本地可接收数据段的数目,窗口大小是可控的
  • 端口号:服务端与客服端, http服务,端口号80,是让客户来访问我的;客户端的段可号是随机的,服务端是固定的。数量2^16

1.3控制位

控制位反应的是两台主机处于什么样的状态

  • SYN(同步位):SYN=1,请求链接
  • FIN(断开位):FIN=1,断开结束
  • ACK(确认位):ACK=1,确认关系
  • RST (重置位):数据传输有问题,重新传输一次
  • URG(紧急位)
  • PSH(急切位)

2.TCP建立连接与断开连接

2.1TCP建立连接的过程称为三次握手,如下图所示

 

 

 

PC1想与PC2建立连接,PC1会发送SYN报文,请求连接,Seq=x(数据段的序号),SYN=1(同步位为1,代表请求建立连接);

PC2收到请求包会回复SYN+ACK报文,Seq=y(PC2发送的数据段序号,ack=x+1(确认号,希望PC1回复的报文序号为x+1),SYN=1(同步为为1,代表收到了PC1的请求),ACK=1(确认位为1,代表同意建立连接);

PC1收到PC的回复后会发送一个序号为x+1的数据段,确认号ack=y+1(正式传输数据时,第一个包的序号为y+1),ACK=1(确认位为1,代表同意连接)

 

2.2TCP断开连接的四次握手

 

2.3有限状态机

  • CLOSED:没有任何连接状态
  • LISTEN:侦听状态,等待来在远方TCP端口的连接请求(服务开启http进程,端口号80,端口在帮进程看着有没有人找http)
  • SYN-SENT:在发送连接请求后,等待对方确认(同步已发送)
  • SYN-RECEIVED在收到和发送一个连接请求后,等待对方确认
  • ESTABLISHED代编传输连接建立,双方进入数据传输状态

3常用的TCP协议端口号及其功能

协议 端口   说明
FTP 21 FTP服务器所开放的端口                 
TELNET 23 用于远程登陆,可以远程控制管理目标计算机
SMTP 25 SMTP服务器开放的端口,用于发送邮件
HTTP 80 超文本传输协议
POP3 110 用于文本的接受

 

 

 

 

 

 

 

4常用的UDP协议端口号及其功能

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

 

posted @ 2022-11-13 17:29  此生何必111  阅读(169)  评论(0)    收藏  举报
1