TCP,Ip协议小结

1、网络包的组成:
          报头/起始帧分界符——MAC头部——IP头部——TCP头部——数据——FCS(帧校验序列)
 
2、TCP头部由TCP模块负责添加,头部格式如下:(最小20字节)
               发送方端口号
               接收方端口号
               序号(发送数据的顺序编号):发送方告诉接收方该网络包发送的数据相当于所有发送数据的第几个字节。
               ACK号(接收数据的顺序编号)
               数据偏移量
               保留
               控制位:
                    URG:表示紧急指针字段有效
                    ACK:表示接收数据序号字段有效
                    PSH:表示通过flush操作发送的数据
                    RST:强制断开连接,用于异常中断的情况
                    SYN:发送方和接受方相互确认序号,表示连接操作
                    FIN:表示断开连接
               窗口:接收方告知发送方窗口的大小(即无需等待确认认可一起发送的数据量)
               校验和
               紧急指针
               可选字段
 
3、IP头部和MAC头部由IP模块负责添加。
     IP头部:IP用的头部,包含IP头部
     MAC头部:以太网的头部,包含MAC地址
IP头部格式如下:
          版本号
          头部长度
          服务类型
          总长度:表示IP消息的总长度
          ID号:用于识别包的编号,一般为包的序列号。如果一个包被IP分片,则所有的分片都拥有相同的ID
          标志:该字段有3个比特,有效的是前两个比特。分别表示是否允许分片,当前包是否是分片包
          分片偏移量
          生存时间
          协议号:十六进制表示,TCP:06     UDP:11     ICMP:01
          头部校验和
          发送方IP地址
          接收方IP地址
          可选字段
 
MAC头部的格式如下:
          接收方MAC地址(48比特,5字节)
          发送方MAC地址
          以太类型:使用的协议类型0000-05DC:IEEE802.3      0800:IP协议      0806:ARP协议      86DD:IPV6
 
 
4、数据包分片、重组操作:
          (1)发送方:
                    将数据包分为多个TCP头部+数据包的组合,TCP头部中存着不同的数据序号;之后将多个组合交由IP模块,统一添加IP头部和MAC头部,IP头部的ID号设为统一的。
          (2)接收方:
                    IP模块具有分片重组的功能,如果接收到的包是进过分片的,那么IP模块会将它们还原成原始的包。分片的包会在IP头部的标志字段中进行标记,当收到分片的包时,IP模块会将其暂时存在内部的内存空间中,然后等待IP头部中具有相同ID的包全部到达,因为同一个包的所有分片都具有相同的ID。此外,IP头部还有一个分片偏移量的字段,它表示当前分片在整个包中所处的位置。根据这些信息,在所有的分片全部收到之后,就可以将它们还原成原始的包。
 
5、滑动窗口机制:
          所谓滑动窗口,就是在发送一个包之后,不等待ACK号的返回,直接发送后续的一系列包。有效利用等待ACK号的这段时间。
          窗口大小:能够接收的最大数据量。
          注意接收缓冲区的概念、TCP头部中的滑动窗口字段的使用(三次握手时传递互相的窗口大小,并且中途还会更新大小)
 
6、IP头部的两个IP地址分别为:发送方网卡的IP地址;应用程序提供的接收方IP地址。
     MAC头部的发送方和接受方的MAC地址分别是发送方网卡的MAC地址;利用ARP(地址解析协议)协议,根据接收方IP地址广播得到的接收方MAC地址。
             注意:ARP缓存概念。
 
7、ICMP协议:
           ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。
 
 
8、UDP传输协议:
          UDP协议使用的具体案例:
               向DNS服务器查询IP地址的时候就是使用的UDP协议。
               发送音频和视频数据。
 
          像DNS查询等交换控制信息的操作基本上都可以在一个包的大小范围内解决,这种场景下就可以使用UDP协议传输。UDP协议没有TCP的接收确认、窗口机制。在收发数据前不需要交换控制信息,也就是说不需要建立和断开连接。
 
UDP头部的格式如下:(8字节)
          发送方端口号
          接收方端口号
          数据长度:UDP头部后面数据的长度
          校验和:用于校验错误
 
          发送数据:
               从应用程序获取的数据前面加上UDP头部,然后交给IP进行发送就OK了。
          接收数据:
               根据IP头部中的接收方和发送方IP地址,以及UDP头部中的接收方和发送方的端口号,找到对应的套接字并将数据交给相应的应用程序就OK了。
 
 
9、TCP与UDP的区别: (转载)
1、基于连接与无连接;
2、对系统资源的要求(TCP较多,UDP少);
3、UDP程序结构较简单;
4、流模式与数据报模式 ;
5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
 
 
10、TCP与UDP的区别:
          (1)回答发送数据前是否存在建立连接的过程。
          (2)TCP过确认机制,丢包可以重发,保证数据的正确性;UDP不保证正确性,只是单纯的负责发送数据包。
          (3) UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因             此,应用程序需要选择合适的报文大小。
   (4)UDP的头部,只有8个字节,相对于TCP头部的20个字节信息包的额外开销很小。

原文地址:https://blog.csdn.net/damys/article/details/88527362

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


现在给大家介绍一下如何查询MAC的生产日期,希望对你查询MAC的生产日期操作有所帮助。
1、点击【编辑虚拟机设置】,转到【CD/DVD (SATA)】,选中【使用 ISO 映像文件】复选框,点击【浏览】,找到已经准备好的 MacOS Ventura 镜像;4、客户机操作系统下,选择【Apple Mac OS X】,版本选择大家需要的【macOS版本】,再点击【下一步】;7、完成【抹掉】后,左上角关闭该窗口,返回上一界面,选择【Install macOS】,正式进入苹果系统安装流程;1、打开 Vmware Workstation,然后点击左上角的【文件】,打开的下拉项中,选择【新建虚拟机】;
注意:用哪个版本的 Python 运行安装脚本,pip 就被关联到哪个版本。一般情况 pip 对应的是 Python 2.7,pip3 对应的是 Python 3.x。pip介绍:pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。1.打开后输入python3确定电脑上是否已安装python3,如果输入python是查看mac上的自带版本。如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。如下图是已经成功安装pip的状态。
Mac 安装nvm
Mac(M1)安装VMware虚拟机及Linux系统
Mac 如何安装 Telnet,mac安装telnet命令
是不是对键盘输入厌烦了?那你可以试试语音输入。 你可以按照下面的步骤打开Mac的语音输入功能。 以 macOS Catalina 为例: Step 1. 点击屏幕左上角的图标,点击【系统偏好设置】。
1.clean my Mac x 2.Cleaner One Pro 3.App Cleaner
按caps lock键。 CapsLock键,短按切换中英文,长按切换大小写。
windows: 1.PowerToys 2.不用软件进行分屏 Windows 10技巧1:窗口1/4分屏 - Acer Community 介绍说明 从Win7时代开始,微软便引入了屏幕热区概念,即
https://zhuanlan.zhihu.com/p/111111684 下载地址: https://www.smoothscroll.net/mac/
https://support.apple.com/zh-cn/guide/imac/apd2e7352054/mac 浏览:24 英寸 iMac 24 英寸 iMac 比以往更个
在Mac自带的中文输入法中,“反斜杠”键(“\”)就是顿号。
1.系统偏好设置。 2和3步如下图: 注意:在设置后,启用capslock大写的时候,需要长按capslock键。
Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏。简洁美观实时预览扩展语法跨平台免费Typora现在收费,但你仍然可以在官方网站上找到历史版本。虽然新版本仍然值得收费,但免费版本仍然可以使用。httpshttpshttpshttpshttpshttpshttpshttps。......
Mac M1安装Centos7
连接为官方下载链接, 直接复制MD5可迅雷下载亲测可用, 和付费版使用体验无差别.1. Windows 64bithttps://download.typora.io/windows/typora-setup-x64-0.11.18.exeMD5:12F96372BEE2951ACF5627EA28F8A389**2. Window 32bit **https://download.typora.io/windows/typora-setup-ia32-0.11.18.exeMD5:F5036
ubuntu22.04 、系统安装、win双系统、Ubuntu分区、Ubuntu优化、美化gnome tweaks,扩展、macos、搜狗输入法、wps字体、微信安装、navicat15、java开发环境搭建、idea 输入法问题处理、双系统问题、github慢等等。史上最全保姆级Ubuntu使用教程
MAC怎么获取文件路径 MAC获取文件路径的四种方法