<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Network on Wimi&#39;s Space</title>
		<link>https://wimi.space/tags/network/</link>
		<description>Recent content in Network on Wimi&#39;s Space</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Wed, 13 Oct 2021 15:20:30 +0800</lastBuildDate>
		
			<atom:link href="https://wimi.space/tags/network/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>使用 WireShark 分析 TCP 协议</title>
				<link>https://wimi.space/posts/2021/10/network-tcp-desc/</link>
				<pubDate>Wed, 13 Oct 2021 15:20:30 +0800</pubDate>
				<guid>https://wimi.space/posts/2021/10/network-tcp-desc/</guid>
				<description>&lt;h2 id=&#34;网络分层&#34;&gt;网络分层&lt;/h2&gt;&#xA;&lt;p&gt;计算机网络的各层及其协议的集合被称为网络的体系结构，按照不同的维度，其常被分为七层、五层、四层网络结构。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/1/17/16fb20a7abacc050~tplv-t2oaga2asx-watermark.awebp&#34;&#xA;  sizes=&#34;(max-width: 640px) 100vw, 50rem&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;  decoding=&#34;async&#34;&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;「图片来自&lt;a href=&#34;https://juejin.cn/post/6844904049800642568&#34;&gt;掘金&lt;/a&gt;」&lt;/p&gt;&#xA;&lt;p&gt;数据包从上到下，每经过一层就在数据包前加上该层的 Header 进行封包操作，再经过物流传输比特流，到另一台设备中再层层解包，从而取出对应的数据。数据包在每一层，都有不同的英文术语来对应，如五层模型中的数据包对应以下的名称：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;层级&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;名称术语&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;应用层&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;HTTP Packet&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;传输层&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;TCP Segment&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;网络层&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;IP Packet&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;链路层&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Frame&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;物理层&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Bits&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;我们可以用一个公式来表示每一层协议的构成：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Packet = Protocol Header + Payload&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;每一层的包都可以用这个公式来表示。有了这个认知之后，对于每一层协议的学习，最后就落实到每一层 Header 的学习上了。&lt;/p&gt;&#xA;&lt;p&gt;我们可用利用 WireShark 工具来形象地查看各层的数据：&#xA;&lt;img&#xA;  src=&#34;https://static.wimi.space/blog/network-tcp-wireshark.jpg&#34;&#xA;  sizes=&#34;(max-width: 640px) 100vw, 50rem&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;  decoding=&#34;async&#34;&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;自上而下分别对应五层模型的物理层、链路层、网络层、传输层、应用层。&lt;/p&gt;&#xA;&lt;h2 id=&#34;tcp-协议&#34;&gt;TCP 协议&lt;/h2&gt;&#xA;&lt;p&gt;TCP 是一种面向连接的、可靠的基于字节流的传输层通信协议。TCP 将用户数据打包成报文段，发送给另一端，另一端对收到的数据进行确认、对失序的数据重新排序、丢弃重复数据。&lt;/p&gt;&#xA;&lt;p&gt;TCP 的特点有：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;TCP 是面向连接的运输层协。&lt;/li&gt;&#xA;&lt;li&gt;每一条 TCP 连接只能有两个端点，每一条TCP连接只能是点对点的。&lt;/li&gt;&#xA;&lt;li&gt;TCP 提供可靠交付的服务。&lt;/li&gt;&#xA;&lt;li&gt;TCP 提供全双工通信。&lt;/li&gt;&#xA;&lt;li&gt;面向字节流。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;TCP 的 Header 结构如下：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/1/17/16fb20a7abb90abd~tplv-t2oaga2asx-watermark.awebp&#34;&#xA;  sizes=&#34;(max-width: 640px) 100vw, 50rem&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;  decoding=&#34;async&#34;&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;「图片来自&lt;a href=&#34;https://juejin.cn/post/6844904049800642568&#34;&gt;掘金&lt;/a&gt;」&lt;/p&gt;&#xA;&lt;h3 id=&#34;三次握手&#34;&gt;三次握手&lt;/h3&gt;&#xA;&lt;p&gt;TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。&lt;/p&gt;</description>
			</item>
			<item>
				<title>IPv4 Network &amp; CIDR</title>
				<link>https://wimi.space/posts/2021/03/network-ipv4-and-cidr/</link>
				<pubDate>Wed, 10 Mar 2021 13:26:44 +0800</pubDate>
				<guid>https://wimi.space/posts/2021/03/network-ipv4-and-cidr/</guid>
				<description>&lt;h2 id=&#34;ipv4网络分类&#34;&gt;IPv4网络分类&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.sojson.com/convert/subnetmask.html&#34;&gt;子网掩码在线换算&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;IPv4地址被分为三部分：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;网络部分（network）&lt;/li&gt;&#xA;&lt;li&gt;子网部分（subnetwork）(现在常被认为是网络部分的一部分)&lt;/li&gt;&#xA;&lt;li&gt;主机部分（host）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;各个类别的范围&#34;&gt;各个类别的范围&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;分类&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;前缀码&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;开始地址&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;结束地址&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;对应CIDR修饰&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;默认子网掩码&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;A类地址&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;0.0.0.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;127.255.255.255&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;/8&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;255.0.0.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;B类地址&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;10&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;128.0.0.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;191.255.255.255&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;/16&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;255.255.0.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;C类地址&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;110&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;192.0.0.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;223.255.255.255&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;/24&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;255.255.255.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;D类地址&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1110&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;224.0.0.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;239.255.255.255&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;/4&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;未定义&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;E类地址&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1111&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;240.0.0.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;255.255.255.255&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;/4&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;未定义&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;按位来表示&#34;&gt;按位来表示&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;n 表示该二进制位是网络位&lt;/p&gt;&#xA;&lt;p&gt;H 表示该二进制位是主机位&lt;/p&gt;&#xA;&lt;p&gt;X 表示该二进制位无特定作用&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A类地址&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  0.  0.  0.  0 = 00000000.00000000.00000000.00000000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;127.255.255.255 = 01111111.11111111.11111111.11111111&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;B类地址&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;128.  0.  0.  0 = 10000000.00000000.00000000.00000000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;191.255.255.255 = 10111111.11111111.11111111.11111111&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C类地址&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;192.  0.  0.  0 = 11000000.00000000.00000000.00000000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;223.255.255.255 = 11011111.11111111.11111111.11111111&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;D类地址&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;224.  0.  0.  0 = 11100000.00000000.00000000.00000000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;239.255.255.255 = 11101111.11111111.11111111.11111111&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;E类地址&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;240.  0.  0.  0 = 11110000.00000000.00000000.00000000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;255.255.255.255 = 11111111.11111111.11111111.11111111&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ipv4子网划分&#34;&gt;IPv4子网划分&lt;/h2&gt;&#xA;&lt;p&gt;子网的划分是一个将主机部分的若干位分配到网络部分的过程。例如，对于一个给定的A类网络：10.0.0.0，子网掩码 255.255.0.0 可以将其划分为256个子网（从 10.0.0.0 到 10.255.0.0）第一个八位位组表示网络地址，第二个表示子网号，而最后两个表示主机部分。用&lt;strong&gt;子网掩码对主机地址进行位与操作&lt;/strong&gt;，就能够提取出完整的子网地址。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
