1.TCP和UDP的报头

TCP报文头部:

Source Port:源端口,标识哪个应用程序发送。长度为16比特。

Destination Port :目的端口,标识哪个应用程序接收。长度为16比特。

举一个例子:客户端向服务器端发送一个数据,其中客户端比如是网页的浏览器,服务器端是网站。那么其中的源端口就是网页的浏览器,目的端口就是网站

Sequence Number:序列字段。tcp连接中的每个报文的都有序列号。长度为32比特。

Acknowledgment Number:确认号,用于对收到的确认。

其中序列号和确认号是一个组合。是为了保证每个数据包对方都成功收到。Header Length:头部长度,tcp报文头部长度,默认情况下,tcp头部为20个字节。注意:这个只是代表tcp的头部有多长,而不是被数据有多长。

Control bits:控制位,包含FIN,ACK,SYN等标志位.

Window:窗口tcp的流量控制,这个值表明当前接收端可接收的最大的数据总数(以字节为单位)窗口最大为65535字节。长度为16比特,它是根据接收者的能力来灵活地控制发送速度,接受方会告诉发送者我的接收能力有多大,你根据我的接收能力来给我发送数据,这样的话我们传输比较稳定,这个window不是一个固定的值,当接受者的能力变大的时候,相对于的window也会变大。

Checksum:校验字段,由发送端计算和存储,并由接收端进行校验,用于校验数据传输过程中有没有损坏。

UDP报文头部:

Source Port:源端口,标识哪个应用程序发送。长度为16比特。

Destination Port :目的端口,标识哪个应用程序接收。长度为16比特。

Length:报文的总长度。

2.TCP的三次握手

三次握手就是指建立一个 TCP 连接,需要客户端和服务端发送三个数据包互相确认的过程。三次握手是为了确认对方和自己是否都准确接收到数据包。

三次握手是要建立双向连接,如下图,双向连接就是pc1能找到pc2,pc2也能找到pc1.

我们可以看出来pc1的源地址是1.1.1.1,目的地址是2.2.2.2,也就是说pc1要发送数据发往pc2,syn位置位为1就是代表这是一个请求的包。其中的序列号是随机的,也就是a。

pc2接收到数据包之后,就是同意建立连接,ack置位等于1也就是同意建立连接。确认号也就是a+1。是pc1发送数据包的序列号加1.

最后pc1再给pc2发送一个确认包。

3.TCP的四次握手

四次握手是基于前面三次握手建立成功之后,数据传完之后,在进行第四次的握手断开

pc1给pc2发送一个FIN置位的为1,就是请求断开连接

pc2接收到之后,同意断开连接,就会发一下ack置位的确认消息,同时会发一下确认号,确认号就是请求断开的连接的序列号+1.
当pc2发完之后就会给pc1发送一个FIN置位的请求断开连接,最后pc1再给pc2发送一个同意断开连接的报文。

本课程讲完,欢迎私信

TCP和UDP的详细内容相关推荐

  1. TCP和UDP的详细区别

    TCP和UDP的详细区别 秋招季,总结一波TCP和UDP详细的区别以及TCP相关,哦,除了卖萌我也喜欢分享. 1.      TCP是面向连接的,而UDP是无连接的. 连接的三次握手和断开连接的四次挥 ...

  2. TCP 和UDP 的详细介绍

    文章目录 TCP 协议 UDP协议 总结 TCP 协议 TCP:传输控制协议,是一种面向连接的可靠传输协议.TCP为应用程序提供一种面向连接的.可靠的服务.(面向连接:传输前进行沟通和协商,确保互相可 ...

  3. 超硬核!!!一篇文章搞定TCP、UDP、Socket、HTTP(详细网络编程内容+现实解释三次握手四次挥手+代码示例)【网络编程 1】

    TCP.UDP.Socket 一天面试的经验: 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP ...

  4. http协议相关内容,C/S与B/S,ip报文,TCP,UDP

    目录 HTTP技术架构 HTTP协议功能 工作原理 HTTP协议的主要组成部分 HTTP协议 Status C/S与B/S的比较: 服务器与Web服务器的差别 浏览器与客户端的差别 浏览器与Web服务 ...

  5. QT入门第七天 网络编程TCP/IP/UDP+Http和JSON解析+qt事件软键盘【CSDN最详细】

    网络编程+Http和JSON解析+qt事件软键盘 第一章 QT中的网络编程 [1]涉及到的类 [2]tcp协议的流程 [2.1]服务器的流程 socket-->bind-->listen- ...

  6. 详细讲解网络协议:TCP和UDP什么区别?

    该文章是学习了 B 站 up 主的视频做的总结,讲的很通俗易懂,首先感谢博主的分享.视频地址:https://www.bilibili.com/video/BV1kV411j7hA/?spm_id_f ...

  7. 摘:MD231 gprs模块建立tcp或udp连接,AT命令详细参考

    1.模块开机初始化设置 AT+SETCID=1,"cmnet"  //cmnet为移动的apn,用户根据运营商提供的apn自己修改 AT+ACTCID=1          //激 ...

  8. MD231 gprs模块建立tcp或udp连接,AT命令详细参考

    1.模块开机初始化设置 AT+SETCID=1,"cmnet"  //cmnet为移动的apn,用户根据运营商提供的apn自己修改 AT+ACTCID=1          //激 ...

  9. UDP和TCP的区别(详细)

    <strong>TCP -- 传输控制协议,提供的是面向连接.可靠的字节流服务.</strong> 当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传 ...

最新文章

  1. python中哪个函数能生成集合_神奇的python系列11:函数之生成器,列表推导式
  2. 1.3 循环神经网络模型-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验...
  4. python设计模式12-代理模式
  5. capture RGBD data with opencv4.1.1 from XTION2 on windows 10
  6. [Objective C] 获取类和对象的运行时状态
  7. component组件基础
  8. WinMap+ | 稳马企业金服基于C4B理论的绿色金融生态区块链探索
  9. 高并发之——并发测试工具ab
  10. 归一化相关系数相关匹配公式
  11. LOJ10099矿场搭建
  12. Nand2Tetris Project1
  13. 如何实现轻松会议签到?
  14. 中国历史和世界史横向对照表,收藏了长知识。 ​​​​
  15. [Eclipse手册]设置pom.xml打开方式
  16. java毕业设计—— 基于java+JSP+SSH的婴幼儿产品销售系统设计与实现(毕业论文+程序源码)——婴幼儿产品销售系统
  17. Deep RGB-D Saliency Detection with Depth-Sensitive Attention and Automatic Multi-Modal Fusion论文笔记
  18. Python tkinter Entry 属性和方法介绍
  19. svn服务端删除版本库_删除SVN目录及从服务器端删除SVN版本库文件方法详解
  20. C语言实习字母金字塔

热门文章

  1. 怎么才能是计算机管理员权限,管理员权限怎么设置?
  2. 移植tcpdump到ARM嵌入式系统
  3. 用 Java 做个“你画手机猜”的安卓小游戏
  4. Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'idweb')
  5. ON1 Effects 2021.5 v15.5.0.10403 中文版 照片滤镜/LUT/纹理处理工具
  6. 硬盘2.5寸4tb服务器硬盘,西部数据My Passport 2.5英寸4TB移动硬盘
  7. 越会读书的人,越懂得这件事的价值
  8. 物联网专科专业必修课程_大专学物联网工程 物联网要学哪些课程
  9. SolidWorks插入内六角螺丝
  10. FastDFS分布式文件系统配置与部署