主机C发现目的IP是自己,会在自己的ARP缓存表中记录主机A的IP和MAC的映射关系,并会向主机A单播回应ARP Reply报文 。
主机A收到主机C的回应报文后后会在自己的ARP缓存表中记录主机C的IP和MAC的映射关系,下次发送数据是就可以查询到主机C的MAC 。
ARP Reply报文中的源协议地址是主机C自己的IP地址,目标协议地址是主机A的IP地址,目的MAC地址是主机A的MAC地址,源MAC地址是自己的MAC地址,同时Operation Code被设置为reply 。
ARP Reply报文通过单播传送 。TCP协议我们知道TCP是传输层协议,用于为应用层提供服务 , 通过端口号可以唯一标识一个应用 。
1
什么是TCP?
TCP 是面向连接的,提供端到端可靠性服务的传输层协议 。
面向连接:
面向连接中通信中,会在在两个端点之间建立了一条可靠的数据通信信道 。
电话就是一种面向连接的服务,双方建立连接后才能够通话,可以确保对方听到你说话;而发短信就不是一种面向连接的服务,你随时可以发送短信,但是不能确保对方及时收到 。
端到端可靠:保证从发送端发送的报文都可以被目的端收到 , 哪怕被丢弃,也可以让发送端重传;
2
为什么需要TCP,TCP可以解决什么问题?
IP 层是「不可靠」的,它只负责数据包的发送,但它不保证数据包能够被接收、不保证网络包的按序交付、也不保证网络包中的数据的完整性 。
如果需要保障网络数据包的可靠性,那么就需要由上层(传输层)的 TCP 协议来负责 。
因为 TCP 是一个工作在传输层的可靠数据传输的服务,它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的 。后续会讲TCP协议是如何确保数据包的可靠传输的?
3
TCP报文格式
我们知道待发送的数据是根据TCP/IP四层模型层层封装的,那么TCP协议是如何封装的?下面我们看下TCP的报文格式 。
如图所示为TCP报文头格式 。
TCP数据段由TCP Header(头部)和TCP Data(数据)组成 。TCP最多可以有60个字节的头部,如果没有Options字段,正常的长度是20字节 。
下面我们一起看下TCP头部的各个字段:
1、16位源端口号:源主机的应用程序使用的端口号 。
2、16位目的端口号:目的主机的应用程序使用的端口号 。每个TCP头部都包含源和目的端的端口号,这两个值加上IP头部中的源IP地址和目的IP地址可以唯一确定一个TCP连接 。
TCP允许一个主机同时运行多个应用进程 。每台主机可以拥有多个应用端口,每对端口号、源和目标IP地址的组合唯一地标识了一个会话 。
端口分为知名端口和动态端口 。
有些网络服务会使用固定的端口,这类端口称为知名端口,端口号范围为0-1023 。如FTP、HTTP、Telnet、SNMP服务均使用知名端口 。
动态端口号范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口 。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用 。
3、32位序列号:用于标识从发送端发出的不同的TCP数据段的序号 。可以解决网络包乱序问题 。
数据段在网络中传输时 , 它们的顺序可能会发生变化;接收端依据此序列号,便可按照正确的顺序重组数据 。
假定主机A和B进行tcp通信,A传送给B一个tcp报文段中,序号值被系统初始化为某一个随机值ISN,那么在该传输方向上(从A到B),后续的所有tcp报文段中的序号值都会被设定为ISN加上该报文段所携带数据的第一个字节在整个字节流中的偏移 。例如某个TCP报文段传送的数据是字节流中的第1025~2048字节,那么该报文段的序号值就是ISN+1025 。
4、32位确认序列号:用于标识接收端确认收到的数据段 。确认序列号为成功收到的数据序列号加1 。用来解决不丢包的问题 。
假定主机A和B进行tcp通信,那么A发出的tcp报文段不但带有自己的序号,也包含了对B发送来的tcp报文段的确认号 。反之也一样 。若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到 。
5、4位头部长度:表示头部占32bit字的数目,它能表达的TCP头部最大长度为60字节 。
6、6位标志位:
URG:紧急指针是否有效 。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不要按原来的排队顺序来传送 。
例如,已经发送了很长的一个程序在远端的主机上运行 。但后来发现了一些问题 , 需要取消该程序的运行 。因此用户从键盘发出中断命令(Control+c) 。如果不使用紧急数据 , 那么这两个字符将存储在接收TCP的缓存末尾 。只有在所有的数据被处理完毕后这两个字符才被交付接收方的应用进程 。这样做就浪费了许多时间 。
- 2023公认穿墙较好的路由器 Redmi路由器AX1800怎么样
- 如何根据数据生成图表 word表格样式在哪里设置
- 千兆路由器怎么设置 华为路由WS7103使用教程
- 家用千兆路由器怎么设置 H3CMagicR5怎么连接
- 千兆无线路由器管理页面 TP-LINKTL-WDR7300怎么设置
- 小白一键制作win7u盘启动盘的方法 u盘启动盘制作工具哪个干净
- 小米wifi设置登录入口 Redmi路由器AC2100怎么设置
- 易展路由器配对教程及怎么连接 TP-LinkTL-WDR7666千兆易展版怎么设置
- 什么型号的路由器好 荣耀路由Pro2参数
- 怎样把黑名单里的人恢复过来 手机黑名单设置在哪里