首页 > 其他分享 >tcp/udp 协议特性和三次握手

tcp/udp 协议特性和三次握手

时间:2022-11-10 11:55:29浏览次数:55  
标签:udp ACK 握手 报文 确认 SYN tcp 特性 连接

一、TCP/UDP协议特性
1)TCP特性:工作在传输层、建立连接、可靠的、错误检查

2)UDP特性:工作在传输层、不需要连接、不可靠的、有限的错误检查、传输性能高

 

 

2、控制位及确认号解释

控制位:由6位组成,表示主机之间目前的关系

URG(紧急位),表示本文段中发送的数据是否包含紧急数据,只有当URG=1时才有效

ACK(确实位)表示前面确认号字段是否有效,只有当ACK=1时,前面的确认号字段才有效。

PSH(急切位)PSH=1时,表示对方应立即把数据递交给上层应用。

RST (重置位)如果收到RST=1的报文,说明与主机的链接出现了严重错误,必须释放然后再重新建立连接。

SYN(同步位)当SYN=1 ACK=0时,表示这是一个请求连接的报文,当SYN=1 ACK=1时,表示对方同意建立连接

FIN(断开位)表示通知对方本端要关闭连接了。

 

3、三次握手过程

 

PC1发送SYN的报文,seq为x的序号,SYN=1请求连接

PC2收到后发送SYN+ACK的报文,seq为y的序号,希望对方回复x+1的确认号,SYN=1收到连接,ACK=1同意连接

PC1收到后发送x+1的数据段,ack=y+1的确认号,ACK=1确认连接

 

 

标签:udp,ACK,握手,报文,确认,SYN,tcp,特性,连接
From: https://www.cnblogs.com/trist-commot/p/16876508.html

相关文章

  • Java输出SSL握手日志和查看cacerts路径
    在JAVA启动时添加下面的VM参数就可以启动握手日志了!!!-Djavax.net.debug=all另外,在debug日志中,有一个trustStoreis关键字,根据这个可以找到使用的是哪个truststor......
  • 深度解析传输控制协议TCP和UDP
    传输协议的引入:如果两台计算机已经处于连接状态,那怎样让数据从一端传送到另外一端?(采用TCP和UDP协议) 一、TCP用户传输协议TCP协议是TransmissionControlProtocol传......
  • 用户态协议栈之tcpip设计
      实现一个协议栈,要拿到最原始的数据,最原始的数据,以太网的数据方法1:rawsocket,方法2:旁路,关掉之前的driver,建立一个driver:netmap,dpdk 方法3:hook......
  • Netty(一)深入理解网络通信和TCP/IP协议
    一、前言为什么要学Netty?实话说工作中真正用到netty开发的场景可能不算特别多,但是为啥要学这玩意呢?有一说一,变强的路上技能可以用不到,但是不能没有~Java生态圈......
  • TCP-Socket项目
    项目描述TCP协议,客户端和服务端,支持多机发送和接受文件和图片发送字符串信息,记录到文本编译工具,makefile,cmake,检查工具知识点抓包工具wireshark,分析数据包文件I......
  • 第13章 TCP/IP和网络编程
    TCP/IP协议TCP/IP协议TCP代表传输控制协议,IP代表互联网协议。目前有两个版本的IP,即IPv4和IPv6。IPv4使用32位地址(目前使用最多),IPv6使用128位地址。TCP/IP的组织结构氛围......
  • Linux高并发网络编程开发——epoll-udp
    在学习Linux高并发网络编程开发总结了笔记,并分享出来。10-Linux系统编程-第13天(epoll-udp)目录:一、学习目标二、复习1、通过gdb定位段错误的位置2、TCP状态转换复习三、epoll......
  • Linux高并发网络编程开发——tcp三次握手-并发
    在学习Linux高并发网络编程开发总结了笔记,并分享出来。10-Linux系统编程-第11天(tcp三次握手-并发)  一、学习目标1、熟练掌握三次握手建立连接过程2、熟练掌握四次挥手断开......
  • linux获取TCP连接数
    方法一:[admin@zabbix~]$ss-ant|awk'NR>1{a[$1]++}END{for(bina)printb,a[b]}'ESTAB535TIME-WAIT80LISTEN13方法二:[admin@zabbix~]$netstat-an......
  • 交叉编译脚本-tcpdump
    说明编译tcpdump的脚本。参考​​tcpdump的移植和使用方法​​编译脚本run_tcpdump.sh#!/bin/bashset-ePATH_INSTALL=/opt/tcpdumpif[-f"Makefile"];thenmakedis......