网络基础概念和网络参考模型

似梦清欢
• 阅读 332

基础概念

网络基础概念和网络参考模型 网络基础概念和网络参考模型 网络基础概念和网络参考模型 园区网络:无线瘦AP。 家庭网络:无线胖AP。


传输层

TCP/UDP报文格式

网络基础概念和网络参考模型 TCP报文头部:

  • Source Port:源端口,标识哪个应用程序发送。长度为16比特。
  • Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
  • Sequence Number:序号字段。TCP链接中传输的数据流每个字节都编上一个序号。序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
  • Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有Ack标识为1,此字段有效。长度为32比特。
  • Header Length:头部长度,指出TCP报文头部长度,以32比特(4字节)为计算单位。若无选项内容,则该字段为5,即头部为20字节。
  • Reserved:保留,必须填0。长度为6比特。
  • Control bits:控制位,包含FIN、ACK、SYN等标志位,代表不同状态下的TCP数据段。
  • Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数(以字节为单位)。窗口最大为65535字节。长度为16比特。
  • Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验证。在计算检验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12字节的伪头部。长度为16比特。
  • Urgent:紧急指针,只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。长度为16比特。
  • Options:选项字段(可选),长度为0-40字节。

UDP报文头部:

  • Source Port:源端口,标识哪个应用程序发送。长度为16比特。
  • Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
  • Length:该字段指定UDP报头和数据总共占用的长度。可能的最小长度是8字节,因为UDP报头已经占用了8字节。由于这个字段的存在,UDP报文总长不可能超过65535字节(包括8字节的报头,和65527字节的数据)。
  • Checksum:覆盖UDP头部和UDP数据的校验和,长度为16比特。

通俗解释: 源端口:16位源端口字段包含初始化通信的端口号。源端口和源IP地址的作用是标识报文的返回地址。 目的端口:16位的目的端口字段定义传输的目的。这个端口指明接收方计算机上的应用程序接口。 序列号(Sequence number:32位,该字段用来标识TCP源段设备向目的端设备发送的字节流,他表示在这个报文段中的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,那木TCP用序列号对每个字节进行计数。 确认号(acknowledgement number :32位,TCP用此字段标识期望收到的下一个段的第一个字节,并声明此前的所有数据都已经正确无误的收到,因此,确认序号应该是上次已成功收到的数据字节序列号加1,收到确认好的源计算机会知道特定的段已经被收到。确认好的字段只在ACK标志被设置是才有效。 数据偏移(Data offset :4位,就是头部长度,跟IP头部一样,以4字节为单位。最大是60个字节。 保留(reserved :6位 置0的字段,位将来定义新的用途保留。 控制位(control :6位,每一位标志都可以打开一个控制功能。 窗口(window :16位,目的之际使用窗口字段告诉源主机它期望每次收到的数据的字节数。 校验和(checksum :16位,tcp头包括16位的校验和字段用于错误检查。源主机基于部分IP头信息、tcp头信息、tcp头和数据内容计算一个校验和,目的逐句也要进行相同的计算、如果收到的内容没有错误,两个计算结果应该完全一样,从而证明数据的有效性。 紧急指针(Urgent pointer :16位,紧急指针字段时一个可选的16位指针,指向段内的最后一个字节位置,这个字段只在URG被置位时才有效。 选项(Options :TCP的头部最小20个字节。如果这里有设置其他参数,会导致头部增大。 填充(padding :当TCP头部小于20字节时会出现,不定长的空白填充字段,填充内容都是0,但是填充长度一定会是32的倍数。 数据(data :被TCP封装进去的数据,包含应用层协议头部和用户发出的数据。 ::: tip 控制位①URG:紧急指针字段标志,此标志标识TCP包的紧急指针字段有效,用来保证TCP连接不被中断,并且督促中间层设备要尽快处理这些数据。(优先处理该数据,他告诉系统此报文中有紧急数据,应尽快传送——相当于高优先级的数据需要进入队列) ②ACK:确认字段标志,取值为1时表示应答字段有效,也即TCP应答号将会包含在tcp段中;为0则反之。 ③PSH:推功能,这个标志位表示push操作。就是指在数据包到达接收端以后,立即传送给应用程序,而不是在缓冲区中排队。(不需要进入队列,直接发送) ④RST:重置连接,这个标志位表示连接复位,用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包。 ⑤SYN:同步序列号,用来请求建立连接 ⑥FIN:数据传送完毕,表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段后,连接将被断开。 :::


源目端口号用于区分同一台设备的不同服务。

一些常见端口号: FTP( 文件传输协议)主动模式下tcp-21控制端口,tcp-20默认数据端口。被动模式使用1024后的随机段口 Telnet(远程登录)tcp-23 SMTP(简单邮件传送协议)tcp-25 POP(post office protocol2)tcp-109 POP3( 邮局协议版本3)tcp-110 SFTP(简单文件传输协议)tcp-115 BGP(边界网关协议)tcp-179 https(加密的超文本文件传输协议)tcp-443 oracle(oracle数据库服务)tcp-1521 Microsoft RDP(微软远程桌面)tcp-3389 MS SQL Server(数据库)udp-5000 DHCP(动态主机配置协议)udp-67服务器使用,udp-68客户端使用 TFTP(小型文件传输协议) udp-69 HTTP(超文本传输协议)tcp-80 DNS(域名服务器)tcp-53用于主服务器与镜像服务器更新信息 udp-53用于域名解析 NTP(网络时间协议)udp-123 SNMP(简单网络管理协议)udp-161 SNMP Trap udp-162 OICQ ( QQ ) udp-8000 IPX ( Internet work Packet Exchange ) tcp/udp-213 Samba(文件共享服务)udp-137 NetBIOS 名字服务 udp-138 NetBIOS 数据报服务 tcp-139 文件和打印共享 tcp-389 用 LDAP(Active Directory Mode)tcp-445 Common Internet File System(CIFS),它是SMB协议扩展到Internet后,实现Internet文件共享tcp-901用于SWAT,用于网页管理Samba。

TCP三次握手:

序列号seq,确认号ack,功能位SYN 第一次握手:设备A的seq随机产生,ack为0,SYN置位表示想要(和设备B)建立连接通信(置位为1)。 第二次握手:设备B的seq随机产生,ack为上一个报文Seq+1,SYN置位表示想要(和设备A)建立连接通信,ACK表示可以(和设备A)建立通信连接。 第三次握手:设备A的seq为本端报文seq+1(或上一个报文的确认号),ack为上一个报文seq+1,ACK表示可以(和设备B)建立通信连接。 网络基础概念和网络参考模型 ::: tip 功能位(TCP标志位)为0没有建立连接,为1建立连接。

  1. SYN(synchronous): 发送/同步标志,用来建立连接,和标志位ACK搭配使用。
  2. ACK(acknowledgement):确认标志,表示确认收到请求。
  3. PSH(push) :表示推送操作,数据包到达接收端后不对其进行队列处理,而是尽可能的将数据交给应用程序处理。
  4. FIN(finish):结束标志,用于结束一个TCP会话。
  5. RST(reset):重置复位标志,用于复位对应的TCP连接。
  6. URG(urgent):紧急标志,用于保证TCP连接不被中断,并且督促中间层设备尽快处理。 ::: ::: warning

设备产生的第一个报文的Seq一定是随机的。 TCP三次握手不传输数据。 ::: 网络基础概念和网络参考模型


交互数据信息:

由发起握手的那一方首先发起数据交互,seq为最后一次握手的序列号,ack为最后一次握手的确认号,报文不再携带flag位,而是携带数据信息。对方收到信息时,回复seq=上一个报文的ack,ack=上一个报文的seq+携带的数据长度(表示已经收到对方发来n字节数据),还有己方要发送的数据信息。 网络基础概念和网络参考模型 网络基础概念和网络参考模型


TCP滑动窗口机制

三次握手过程中,双方设备发送报文时描述自己的窗口值大小,协商出窗口值大小win,即本端每次可以接收的最大报文数为win个。传输数据时,双方设备发送报文时仍会描述自己的窗口值大小,但win的值不固定,通过这种机制可以动态调节网络传输速度。 窗口动态调整时,接收方调整win后,通过ack回应发送方,ack的值为调整后实际接收到的最后一个报文的seq+1。发送方收到报文后,seq=上一个报文的ack,发送方从seq个报文开始进行发送(重传),ack=上一个报文的seq+1。(未携带数据时,携带数据时ack为seq+携带的数据长度) (ack表示要接收的下一个报文的序列号seq。) ::: tip 窗口调整一般在网络出现拥塞时使用,即本端的窗口值大小不足以接收对端发来的所有数据报文。按照本端窗口值接收后,使用ack要求发送端重传未能接收的部分。 ::: 网络基础概念和网络参考模型


TCP关闭————四次挥手

发送端使用功能位FIN,表示想要断开连接。接收端使用功能位ACK,表示同意断开连接。 接收端同样使用功能位FIN,表示想要断开连接。发送端收到后使用功能位ACK,表示同意断开连接。 第二次第三次挥手是接收端向发送端发送报文,两次挥手的seq和ack相同。 ::: tip 第一次挥手时,发送端发出FIN置位1的报文,表示无数据可发,但是可以接收数据。 第二次挥手时,接收端未做好断开连接准备(可能还有一些数据未能发送完毕),ACK只是确认收到发送端的FIN请求。 第三次挥手时,接收端做好关闭连接准备,发送FIN请求。 第四次挥手时,发送端接收到关闭连接请求,发送ACK确认包。 接收端收到ACK包后关闭连接,发送端等待两个报文最大存活时长后关闭连接。 :::

::: warning 三次握手时seq=ack,ack=seq+1。 数据交互时,seq=ack,ack=seq+携带数据长度。 :::


网络基础概念和网络参考模型 TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(Packet Data Unit,协议数据单元)彼此交换信息,确保网络设备之间能够通信。

不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称: 应用层数据——data/7PDU 传输层数据——数据段(segment) 网络层数据——数据包(packet) 数据链路层数据——数据帧(frame) 物理层数据——比特流


网络层

传输层负责建立主机之间进程与进程之间的连接。 网络层负责数据从一台主机到另外一台主机之间的传递。 网络层的PDU被称为Packet(包)。 网络层为网络中的设备提供逻辑地址(IP地址),负责数据包的寻径和转发。常见协议如IPv4,IPv6、ICMP,IGMP等。


数据链路层

ARP交互过程:

起始ARP缓存表为空,发送端只知道接收端IP地址,而发送数据需要完整的源IP源MAC目的IP目的MAC。需要发送广播报文,地址FF-FF-FF-FF-FF-FF,广播报文携带源IP源MAC目的IP,接收端通过目的IP判断是发送给自己的报文,然后回复一个单播报文,其余广播段内设备接收到即丢弃。 网络基础概念和网络参考模型 网络基础概念和网络参考模型 网络基础概念和网络参考模型 网络基础概念和网络参考模型 网络基础概念和网络参考模型 ARP交互具体步骤: Step 1: 在发送数据前,设备会先查找ARP缓存表。 Step 2: 如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过ARP来获取。 主机1通过发送ARP Request报文来获取主机2的MAC地址。由于不知道目的MAC地址,因此ARP Request报文内的目的端MAC地址为0。 Step 3: ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作。 Step 4: 所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。 主机2发现IP地址匹配,则会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。 Step 5: 主机2通过发送ARP Reply报文来响应主机1的请求。此时主机2已知主机1的MAC地址,因此ARP Reply是单播数据帧。 Step 6: 交换机收到该单播数据帧后,会对该帧执行转发操作。 Step 7: 主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段是否与自己的IP地址匹配。如果IP匹配,会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。

免费ARP交互过程:

当设备配置完IP地址后,且接口处于使用状态,设备会主动发送一个免费ARP报文(广播发送),免费ARP报文是request报文改的,报文内携带(SIP、SMAC、DIP、DMAC)。 免费ARP报文主要作用是进行地址冲突检测的,检测本端配置的IP地址是否已经被其他设备配置,如果地址出现了冲突,则冲突的两台设备会不断发送免费ARP报文,且设备会通告日志,告知管理发生了地址冲突。 免费ARP报文的目的MAC为全0,表示未知MAC需要解析,实际不需要解析,原因是目的IP和源IP一致,目的MAC为自己的MAC。


物理层

物理层:数据帧会被转换为比特流。 STP-屏蔽双绞线(568A:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕) UTP-非屏蔽双绞线(568B:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕) ::: tip 双绞线和光纤是一对多的连接,串口线缆是一对一的连接。 :::


中间网络数据传输

交换机根据数据链路层信息判断,即交换机只解封装到数据链路层。路由器根据网络层信息判断,路由器解封装到网络层才能执行数据转发,到达目的设备需要解封装到最后一层。

MAC地址的选择需要在同一条链路/同一个网段内,如下PC3与PC4通信时,PC3的目标MAC只能写网关的MAC地址,否则PC3到AR3之间的网段内没有PC4的MACA地址,数据包无法发送到网关。网关设备通过MAC地址确认数据包时发送给自己的。中间网络设备转发时,源目的MAC地址会在重新封装过程中改变。 网络基础概念和网络参考模型 ::: warning 不同的网络设备转发时ARP表项会有IP相同MAC不同的情况(所有经过自己的数据,目标MAC地址都是自己的端口MAC),最开始时候所有的设备都可以通过ARP广播报文得知所有的设备的IP和MAC嘛,然后发送数据时候可以根据ARP表项逐跳向下转发。 :::

点赞
收藏
评论区
推荐文章

暂无数据

似梦清欢
似梦清欢
Lv1
学海无涯
文章
17
粉丝
17
获赞
1