首页 > 其他分享 >传输层协议之TCP三次握手

传输层协议之TCP三次握手

时间:2022-11-13 17:45:42浏览次数:52  
标签:协议 握手 报文 SYN 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 网络时间协议

 

标签:协议,握手,报文,SYN,TCP,发送,传输层,连接
From: https://www.cnblogs.com/daiwei-123/p/16886197.html

相关文章

  • 抓包整理————tcp 传输数据的基础概念[十一]
    前言简单介绍一下tcp数据传输。正文tcp数据传输是怎么样子的呢?比如我们在代码中写好了,connection去连接。然后我们用write去读取数据,这个时候呢,到底我们的操作系......
  • 抓包整理————tcp 三次握手性能优化[十]
    前言tcp三次握手性能优化。正文服务器三次握手流程示例:下面就是3次握手的过程:知道这个有什么用呢?我举一个我使用到的例子哈。比如有很多tcp连接到一台机器上......
  • Unix/Linux系统编程(TCP/IP和网络编程)
    TCP/IP协议TCP/IP是互联网的基础。TCP代表传输控制协议。IP代表互联网协议。目前有两个版本的IP,即IPv4和IPv6。IPv4使用32位地址,IPv6则使用128位地址。本节围绕IPv4进行......
  • 抓包整理————tcp 三次握手[九]
    前言简单抓包一下3次握手。正文握手的目标:同步sequence序列化初始化序列化ISN(InitialSequenceNumber)交换tcp通信参数如MSS、窗口比例因子、选择性确认、......
  • TCP Connection Status
    ATCPconnectionprogressesthroughaseriesofstatesduringitslifetime.ThefollowingdiagramillustratesthepossiblestatesforaTCPconnectionandhow......
  • TCP-可靠传输-流量-拥塞控制
    1.TCP的可靠传输1.1停止等待ARQ协议主机采用TCP发出信息时会设置一个定时器,若超出定时器所设定的时间还没有响应过来,则主机会认为发出去的消息没有传达到目的......
  • Android TCP客户端
    文章目录​​一、创建工程​​​​二、添加网络权限​​​​三、添加布局代码​​​​四、添加逻辑代码​​​​五、通信测试​​​​六、源码分享​​一、创建工程二、添加......
  • go错误汇总2:[ERROR] listen tcp: address 8082: missing port in address
    go错误汇总2:[ERROR]listentcp:address8082:missingportinaddress错误信息:[ERROR]listentcp:address8082:missingportinaddress 错误原因:代......
  • 【lwip】12-一文解决TCP原理
    目录前言12.1TCP协议简介12.2TCP相关的一些概念词12.2.1MSL12.2.2MSS12.3TCP工作特性12.3.1面向连接12.3.2全双工通信12.3.3可靠性12.3.4缓冲机制12.3.5拥塞控制......
  • 关于单机最大tcp连接数 及 linux …
    在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少?如何标识一个TCP连接ip, local port,remo......