TCP/IP协议原理
- wireshark的工作原理

- 抓取指定网卡端口数据
此网卡是windows下和linux虚拟机在一个局域网的

- windows下使用工具作为客户端连接linux虚拟机上的服务器

在客户端发送一个数据给服务器,wireshark抓到TCP数据包

- 常用调试测试工具
使用telnet测试TCP服务器端
使用lsof
使用tcpdump
使用netstat
使用sniffer
使用wireshark(全平台)
Chariot
…
SmartBit-硬件
TCP/P协议网络封包格式

网络接口物理层:主要以MAC地址传输
网络层:主要以IP地址传输
传输层:主要以端口号传输
Ethernet header:
MTU:以太网MTU=1500
MSS(maxium segment size):网络类型、线路、系统相关特性
- 1.以太网头

以太网头示例图:

- 2.IP头

ip头示例图:

包的碎片化过程:

- 3.TCP头
TCP是一种面向连接的,可靠的数据传输,之前的链路层和网络层都是一种尽力传输。

- TCP可靠传输图示
1.通过确认和重发机制:TCP数据给每个字节都编了一个号码,所以数据最小单元为字节。例如:一个包可以带1-999字节,滑动窗口在1-999编号上。
2.发送时在当前offset数据位置发送window窗口大小的数据。
3.如果接收到的ack是offset + window + 1,代表数据发送成功,如果是小于offset + window +1的那么offset移动到接收到的数据位置,数据窗口向后滑,代表有数据需要被重复。

- TCP面向连接示例图

TCP完整工作过程图示:

linux系统Time_wait:如果套接字没有通过close(fd)关闭,进程直接被信号退出,那么就不会执行close(fd),这时内核不会马上释放套接字,要等待time_wait超时时间到后才会关闭套接字。linux、unix系统time_wait时间根据系统30s到2分钟。
- 本文作者: 龙兄嵌入式
- 本文链接: https://hexo.880755.xyz/1970/01/01/zblog/download/61.TCP_IP协议原理/