当前位置:网站首页>网络分层概念及基本知识
网络分层概念及基本知识
2022-07-06 09:34:00 【唐僧骑白马】
1、OSI 的七层模型,和 TCP/IP 的四层 / 五层模型
2、TSL层
3、什么是 TCP 流
在具体的网络报文层面,一个 TCP 流,对应的就是一个五元组:传输协议类型、源 IP、源端口、目的 IP、目的端口。比如,今天你访问了极客时间网站,那么你这次的 TCP 流就可能就是这样一个五元组:
(TCP, your_ip, your_port, geekbang_ip, 443)
一个 IP 报文,包含了所有这五个元素,所以 Wireshark 在解析抓包文件时,自然就能通过五元组知道每个报文所属的 TCP 流了。这也是为什么我们可以在 Wireshark 里,用 Follow TCP Stream 的方法,找到报文所在的 TCP 流。
4、报文、帧、分组、段、数据包
报文(packet),是一种相对宽泛和通用的说法,基本上每一层都可以用。比如,在应用层,你可以说“HTTP 报文”;在传输层,你可以说“TCP 报文”;同样的,在网络层,当然就是“IP 报文”了。事实上,网络层也是“报文”一词被使用最多的场景了。数据包也是类似的,可以在很多场景下通用。
帧(frame)是二层也就是数据链路层的概念,代表了二层报文,它包含帧头、载荷、帧尾。注意,帧是有尾部的,而其他像 IP、TCP、HTTP 等层级的报文,都没有尾部。我们不可以说“TCP 帧”或者“IP 帧”,虽然也许对方也明白你的意思,但我们都想做得专业一点,不是嘛。这里还有个小知识点:HTTP/2 实现了多路复用,其中也有帧的概念,不过那个帧,跟这里网络二层的帧,除了名称相同以外,就没有别的联系了。
分组是 IP 层报文,也就是狭义的 packet。
段特指 TCP segment,也就是 TCP 报文。既然 segment 是“部分”的意思,那这个“整体”又是什么呢?它就是在应用层交付给传输层的消息(message)。当 message 被交付给传输层时,如果这个 message 的原始尺寸,超出了传输层数据单元的限制(比如超出了 TCP 的 MSS),它就会被划分为多个 segment。这个过程就是分段(segmentation),也是 TCP 层的一个很重要的职责。
数据包,Datagram 的中文叫“数据报”,但不是“数据包”。读音类似,但意思并不完全相同。前面说过,“数据包”是一个通用词,所以用“UDP 数据包”指代“UDP 数据报”并没有问题。但反过来,非 UDP 协议的数据包,比如 TCP 段,就不能叫“TCP 数据报”了,因为 TCP 不是 Datagram。
5、网络层的对应排查工具
5.1、应用层
- Chrome+F12——>network
- Application 页——>找到 Storage ——>Cookie
5.2、会话层和表示层
- 第一种,还是基于浏览器做初步的检查,主要是围绕证书本身做检查
- 第二种,关于 TLS 握手、密钥交换、密文传输等方面的排查,还是需要用tcpdump 和 Wireshark 来做
5.3、传输层
路径可达性测试
$ telnet www.baidu.com 443
Trying 180.101.49.12...
Connected to www.a.shifen.com.
Escape character is '^]'.
nc
$ nc -w 2 -zv www.baidu.com 443
Connection to www.baidu.com 443 port [tcp/https] succeeded!
netstat查看当前连接状况
$ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 280 10.0.2.15:22 10.0.2.2:56669 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
查看当前连接的传输速率
[[email protected] ~]# iftop
interface: ens33
IP address is: 192.168.192.110
MAC address is: 00:0c:29:9d:13:5f
查看丢包和乱序等的统计,netstat -s 命令
[[email protected] ~]# netstat -s
Ip:
1081829 total packets received
0 forwarded
0 incoming packets discarded
1081814 incoming packets delivered
765524 requests sent out
16 outgoing packets dropped
Icmp:
70 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
destination unreachable: 44
echo requests: 26
84 ICMP messages sent
0 ICMP messages failed
查看动态变化值
[[email protected] ~]# watch -d netstat -s
ss -s命令查看整体情况
[email protected] ~]# ss -s
Total: 179 (kernel 760)
TCP: 14 (estab 3, closed 2, orphaned 0, synrecv 0, timewait 2/0), ports 0
Transport Total IP IPv6
* 760 - -
RAW 0 0 0
UDP 0 0 0
TCP 12 6 6
INET 12 6 6
FRAG 0 0 0
5.4、网络层
查看网络路径状况
[[email protected] ~]# traceroute www.baidu.com
traceroute to www.baidu.com (14.215.177.39), 30 hops max, 60 byte packets
1 gateway (192.168.192.2) 0.420 ms 0.201 ms 1.479 ms
2 * * *
3 * * *
4 * * *
加上 -I 参数(I 代表 ICMP),就可以正常跑到底了:
$ traceroute www.baidu.com -I
traceroute to www.a.shifen.com (180.101.49.12), 64 hops max
1 10.0.2.2 0.099ms 2.363ms 0.078ms
2 192.168.1.1 3.320ms 1.220ms 1.204ms
3 100.65.0.1 8.737ms 4.872ms 6.403ms
4 61.152.54.125 5.035ms 3.397ms 4.288ms
5 * 61.152.25.110 4.176ms *
6 202.97.101.30 7.447ms 6.399ms 5.936ms
7 58.213.95.110 10.488ms * 9.014ms
8 * 58.213.95.134 11.064ms *
9 58.213.96.74 10.997ms 10.042ms 10.592ms
10 * * *
11 * * *
12 * * *
13 180.101.49.12 11.269ms 9.518ms 8.779ms
背后的原理,就是 traceroute 默认是用 UDP 作为探测协议的,但是很多网络设备并不会对 UDP 作出回应。所以我们改成 ICMP 协议做探测后,网络设备就有回应了。其实,Windows 上的 tracert,就是默认用 ICMP,这一点跟 Linux 正好是反过来的。
用 mtr,来获取更加全面和动态的链路状态信息
$ mtr www.baidu.com -r -c 10
Start: 2022-01-07T04:05:02+0000
HOST: victorebpf Loss% Snt Last Avg Best Wrst StDev
1.|-- _gateway 0.0% 10 0.3 0.4 0.2 1.2 0.3
2.|-- 192.168.1.1 0.0% 10 1.6 1.8 1.4 3.2 0.5
3.|-- 100.65.0.1 0.0% 10 3.8 7.0 3.8 10.3 2.0
4.|-- 61.152.54.125 0.0% 10 4.0 4.3 3.6 5.1 0.5
5.|-- 61.152.25.110 30.0% 10 5.0 6.8 4.4 18.9 5.4
6.|-- 202.97.101.30 20.0% 10 7.8 6.6 5.4 7.8 0.8
7.|-- 58.213.95.110 80.0% 10 10.0 9.8 9.6 10.0 0.3
8.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
9.|-- 58.213.96.74 0.0% 10 10.5 12.7 9.9 24.7 4.9
10.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
11.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
12.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
13.|-- 180.101.49.12 0.0% 10 9.4 9.1 8.3 9.7 0.5
route查看路由
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 100 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
10.0.2.2 0.0.0.0 255.255.255.255 UH 100 0 0 enp0s3
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
netstat,其实也能帮我们查看路由,只要加上 -r 参数:
[[email protected] ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 ens33
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.192.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
ip route也可以查看路由信息
[[email protected] ~]# ip route
default via 192.168.192.2 dev ens33 proto static metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.192.0/24 dev ens33 proto kernel scope link src 192.168.192.110 metric 100
5.5、 数据链路层和物理层
这一层离应用层已经很远了,一般来说是专职的网络团队在负责。如果这一层有问题,就会直接体现在网络层表现上面,比如 IP 会有丢包和延迟等现象,然后会引发传输层异常(如丢包、乱序、重传等)。所以,一个稳定的数据链路层乃至物理层,是网络可靠性的基石。
使用ethtool查看相关信息
# ethtool -S enp0s3
NIC statistics:
rx_packets: 45897
tx_packets: 9457
rx_bytes: 59125524
tx_bytes: 834625
rx_broadcast: 0
tx_broadcast: 17
rx_multicast: 0
tx_multicast: 59
rx_errors: 0
tx_errors: 0
tx_dropped: 0
边栏推荐
- Final review of information and network security (based on the key points given by the teacher)
- List集合数据移除(List.subList.clear)
- 07 personal R & D products and promotion - human resources information management system
- MySQL报错解决
- In the command mode in the VI editor, delete the character usage at the current cursor__ Command.
- JVM 垃圾回收器之Serial SerialOld ParNew
- How does wechat prevent withdrawal come true?
- JVM 垃圾回收器之Garbage First
- 集成开发管理平台
- MySQL basic addition, deletion, modification and query of SQL statements
猜你喜欢
ByteDance overseas technical team won the championship again: HD video coding has won the first place in 17 items
03 products and promotion developed by individuals - plan service configurator v3.0
Assembly language addressing mode
Flink 解析(四):恢复机制
Prototype chain inheritance
Activiti directory (III) deployment process and initiation process
Integrated development management platform
JVM class loading subsystem
05 personal R & D products and promotion - data synchronization tool
应用服务配置器(定时,数据库备份,文件备份,异地备份)
随机推荐
Login to verify the simple use of KOA passport Middleware
C# WinForm中DataGridView单元格显示图片
Program counter of JVM runtime data area
Deploy flask project based on LNMP
暑假刷题嗷嗷嗷嗷
信息与网络安全期末复习(完整版)
List集合数据移除(List.subList.clear)
Flink 解析(六):Savepoints
mysql 基本增删改查SQL语句
JVM之垃圾回收器上篇
Flink 解析(一):基础概念解析
Akamai 反混淆篇
JVM之垃圾回收器下篇
复盘网鼎杯Re-Signal Writeup
ByteDance overseas technical team won the championship again: HD video coding has won the first place in 17 items
Jetpack compose 1.1 release, based on kotlin's Android UI Toolkit
唯有學C不負眾望 TOP5 S1E8|S1E9:字符和字符串&&算術運算符
[mmdetection] solves the installation problem
【逆向初级】独树一帜
MySQL string function