2021-12-12 网工基础(九)ARP协议、ICMP协议、传输层协议、TCP报文头部_x629242的博客-CSDN博客
一 TCP的三次握手
任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接。
对于TCP这个协议来说,一定是先建立会话,后传输数据。
1 首先解释2个标志位Flags的意义
1 Acknowledgment :表示是否有确认号
2 Syn:表示是否是同步用的数据
2 三次握手时的三条数据包
数据包条目 | 收发方 | 序列号a(Seq) | 确认号b(Ack) | 标志位Flags | 例如 |
第一条 | 主机1发、主机2收 | a(0) | b(0) | Syn=1 Ack=0 | 拨打电话号码 |
第二条 | 主机2发、主机1收 | b(0) | a+1(1) | Syn=1 Ack=1 | 接听、确认收到 |
第三条 | 主机1发、主机2收 | a+1(1) | b+1(1) | Syn=0 Ack=1 | 确认收到 |
TCP的的建立是基于双向确认的,有双向确认的机制,并且数据在传输中,有序列号和确认号。
如果数据在传输过程中,无法得到确认号的确认,那么TCP会进行数据上的重传,保证数据在传递中过程一定能够到达目标。
TCP使用序列号和确认序列号字段实现数据的可靠和有序传输。
3 三次握手后使用telnet协议开始传输数据的示例
x代表数据长度(TPC Segment Len)
数据包条目 | 收发方 | 序列号a(Seq) | 确认号b(Ack) |
第四条 | 主机1发、主机2收 | a | b |
第五条 | 主机2发、主机1收 | b | a+第四条的x |
第六条 | 主机1发、主机2收 | a+第四条的x | b+第五条的x |
第七条 | 主机2发、主机1收 | b+第五条的x | a+第四条的x+第六条的x |
第八条 | 主机1发、主机2收 | a+第四条的x+第六条的x | b+第五条的x+第七条的x |
4 TCP的窗口(报文头部中的window字段)滑动机制
TCP通过滑动窗口机制来控制数据的传输速率。
TCP的滑动窗口机制用于动态的控制数据的传输速率。在链路或者系统繁忙时,自动将滑动窗口变小通知对端降低发送速率,在链路空闲。自动调大滑动窗口允许对端加快发送速率。它是由系统自动调整的。
二 TCP的关闭-四次挥手
当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源。
由于TCP是双向连接,在建立会话时,需要双向确认,所以在断开会话时,也是双向断开的。
四次挥手的四条数据包
标志位Fin:表示断开连接
数据包条目 | 收发方 | 序列号a(Seq) | 确认号b(Ack) | 标志位Flags |
第一条 | 主机1发、主机2收 | a(0) | b(0) | Fin=1 Ack=0 |
第二条 | 主机2发、主机1收 | b(0) | a+1(1) | Fin=0 Ack=1 |
第三条 | 主机2发、主机1收 | b(0) | a+1(1) | Fin=1 Ack=1 |
第四条 | 主机1发、主机2收 | a+1(1) | b+1(1) | Fin=0 Ack=1 |
三 UDP协议
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据包协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法,无差错报告机制,特点快,成本低,不可靠。
UDP报头分析
Source port:源端口
Destination port:目标端口
Length:封装的数据长度
Checksum:校验码
Data(if any):数据
四 数据的封装和解封
数据封装(Data Encapsulation),笼统地讲,就是把业务数据映射到某个封装协议的净荷中,然后填充对应协议的包头,形成封装协议的数据包,并完成速率适配。
解封装,就是封装的逆过程,拆解协议包,处理包头中的信息,取出净荷中的业务信息数据封装和解封装是一对逆过程。
中间网络数据传输
VLAN基础
一 什么是VLAN
1 传统以太网的问题
在典型交换网络中,当某台主机发送一个广播帧或未知单播帧时,该数据帧会被泛洪,甚至传递到整个广播域。
广播域越大,产生的网络安全问题、垃圾流量问题,就越严重。
2 虚拟局域网(VLAN, Virtual LAN)
虚拟局域网VLAN可以隔离广播域。
特点:
不受地域限制。
同一VLAN内的设备才能直接进行二层通信。
实验:搭建简单VLAN
将同一交换机下的4台主机划分到2个VLAN里
交换机命令
system-view \\进入系统视图
vlan 2 \\ 创建VLAN 2
vlan 3 \\ 创建VLAN 3
interface g0/0/1 \\进入g0/0/1接口视图
port link-type access \\配置端口类型为Access
port default vlan 2 \\配置端口为VLAN 1
interface g0/0/2
port link-type access
port default vlan 2
interface g0/0/3
port link-type access
port default vlan 3
interface g0/0/4
port link-type access
port default vlan 3
实验结果: VLAN 1 的主机无法 ping 通 VLAN 2 的主机,同一个VLAN内的主机可以相互ping通,抓包会发现同一 VLAN 里的主机不会收到其他 VLAN 的主机发送的ARP广播。