最后更新:2022-06-10 23:16

数据流转示意
首先你需要了解一些基本概念
开放系统互连参考模型(Open System Interconnection Reference Model,OSI)是国际标准化组织(ISO)为计算机和通信系统互连开发的标准系统。

OSI七层协议模型
应用层
DHCP · DNS · FTP · Gopher ·GTP · HTTP · IMAP4 · IRC · NNTP · NTP · POP3 · RPC · RTCP · RTP ·RTSP · SIP · SMTP ·SNMP · SSH · SDP · SOAP .STUN. SSDP · TELNET · XMPP
表示层
HTTP/HTML/FTP/Telnet/ASN.1(具有显示层功能)
会话层
ADSP ·ASP ·H.245·ISO-SP ·iSNS ·NetBIOS ·PAP ·RPC·
RTCP ·SMPP ·SCP ·SSH ·ZIP ·SDP (有对话层功能)
传输层
TCP · UDP · TLS · DCCP · SCTP ·RSVP · PPTP
网络层
IP (IPv4 · IPv6) · ICMP · ICMPv6 · IGMP ·IS-IS · IPsec · BGP · RIP · OSPF ·ARP · RARP
数据链路层
IEE 802.WiMAX (IEE 802).16) ATMs, DTMs, Licensing Rings, Ethernet Networks
FDDI · 框架继电器 · GPRS · EVDO · HSPA · HDLC · PP · L2TP · ISDN ·STP
物理层
Ethernet路由器 · 模块化器 · 电线通信(PLC) · SONET/SDH (光同步数字传输网络) ·
G.709(光传输网络) ·光纤 ·共轴电缆 ·双线
TCP/IP协议堆(英语:TCP/IP protocol stack)是国防部 Advanced Research Program Office(ARPANET)计算机网络及其后代互联网所使用的参考模型。ARPANET是一个由美国国防部资助的研究网络。最初,它仅连接美国国内四个大学。随后的几年中,它通过租用电话线连接了数百个大学和政府部门。最终, ARPANET发展成为世界上最大的互联网络 - 互联网.原有的ARPANET在1990年被永久关闭。
ISO开发的过大而复杂的OSI参考模型引起了大量批评,而技术人员本身开发的TCP/IP堆栈则得到了更广泛的应用。

TCP/IP四层模型
应用层
应用程序生成和发送数据,然后将数据包成层,然后包成一个Ethernet框架,然后从链子中发送出来。
在通信过程中,每个层协议必须添加一个标题, 称为封装.

封包过程
数据包到达目标机器后,它们经过相反的过程,最终被目标程序接收

解包过程

TCP数据报结构

TCP数据报结构
Wireshark包数据

数据报文

IP数据报结构

IP数据包结构
Wireshark包数据

数据报文

以太网帧结构
序言序言
7位元或56位元的长度,用于替换0和1,以同步时钟。
开始帧界限器(SFD)
符号(1字节:10101011)表示以下是数据,不能继续使用以同步时钟。 10101011连接到序言的1尾,形成两个1s作为符号。
目的地地址和源地址
是源Mac和目的地Mac地址
Type类型
这个字段定义了包在顶层协议中包含的框架,该协议可以是IP、ARP、OSPF等。
Data
数据来自顶层,大小应介于46到1500字节,如果低于46字节,它将自动填满0字节,否则分开
CRC错误检测
源和目的地的Mac地址和数据的总数,如果发现错误,则将删除帧。

以太网封装
Wireshark包数据

数据报文

传输示意图


TCP的三个握手和四个波浪

建立连接

第一次握手
: 客户端在包头1处发送一个TCP SYN符号,指示客户端打算连接到服务器的端口,并存储在包头的 ** ( 序列数)字段中的初始序列数X。
第二次握手
服务器发送一个确认包(ACK)来回答。SYN和ACK符号同时设置为1,而确认号为1。
第三次握手
客户端再次发送确认包(ACK)。SYN标记为0,ACK标记为1。
断开连接

第一次挥手
客户端发送一个 FIN来关闭从服务端到服务器的数据传输,并输入 FIN_WAIT_1状态。
第二次挥手
接收 FIN后,向客户发送ACK,确认该序列已接收Sequence+1(与SYN一样,一个 FIN占有一个序列),端口进入CLOSE_WAIT状态
第三次挥手
服务端发送 FIN 关闭服务器向客户端的数据传输,服务端输入LAST_ACK状态。
第四次挥手
接收 FIN后,服务端进入Time_WAIT状态,然后向服务端发送ACK,确认已接收的序列号码+1,服务器进入CLOSED状态,完成四个波
首先,你可能知道开关、路由器、开关等等是什么,以及一般的网络结构
这指的是以太网交换机。以太网交换机的结构使得每个端口直接连接到主机,一般在完全双重模式下运行。 这些交换机可以同时连接多个端口,允许每个主机以无冲突的方式作为专有通信媒体传输数据。
OSI网络参考模型的第二层(即数据链层)是基于MAC(Media Access Control)地址识别的网络设备,用于完成Ethernet数据帧传输。
交换机接收计算机在端口上发送的数据帧,根据帧头的目的搜索MAC地址表,并从相应的端口发送数据帧,从而实现数据交换。
路由器是连接两个或多个网络并交换网络的硬件设备,读取每个包中的地址,然后决定如何传输一个专门的智能网络设备。
路由器也可以称为门户设备。工作于OSI网络参考模型第三层(即网络层),在不同网络之间存储和分发数据包,数据从一个子网传输到另一个子网。可以处理路由器的路由功能.在网络通信中,路由器具有确定网络地址和选择IP路径的功能,可以在多个网络环境中使用,建立一个灵活的链路系统,通过不同的数据子集和媒体访问模式连接到每个子网。路由器只接受源站或其他有关路由器在操作中传输的信息,它是基于网络层的相互连接设备.
路由器只能根据特定IP地址发送数据。IP地址由两个部分组成:网络地址和主机地址。 计算机间的通信只能发生在同一个网络地址的IP地址之间,如果你想与其他计算机在网络中通信,你必须通过路由器发送数据。
路由器的多个端口可以连接多个网络段,每个端口的IP地址必须与连接网络段的网络地址相匹配。不同端口其网络地址不同,相应的网络段也是不同的,这允许每个分段的主机通过自己的分段的IP地址向路由器发送数据。
对于每个接收的包,路由器将重新计算其校正值并写下新的物理地址。
路由器的主要任务是为每个通过路由器的数据帧找到最佳传输路径,并有效地将数据转移到目的地。
这个关口也被称为接口或协议转换器。默认的网络交换机在网络层上实现网络互连,最复杂的网络互联设备,仅用于两个不同网络接口的高级协议。门道的结构类似于路由器的结构,不同的是互连层。开关可用于宽带网络互联,它也可以用于本地网络互连。
注:由于历史原因,许多与TCP/IP有关的文献将网络层中使用的路由器称为关口。今天,许多宽带网络使用路由器连接到网络,所以通常使用的关口就是路由器的IP!
那么,门是什么?门户基本上是网络向其他网络的IP地址。例如,有网络A和网络B,网络A的IP地址范围为"~192.168.1.254".子网是加密的; 网络B的IP地址范围是~.子网是加密的。没有路由器,两个网络间的TCP/IP通信是不可能的,即使在同一开关(或连接器)上连接两个网络,TCP/IP协议还根据子网掩盖确定在不同网络中的两个网络上的主机的位置。并且实现这两个网络之间的沟通,则必须通过网关。如果A网络中的主机发现目标数据包主机不在本地网络中,将数据包发送到自己的门户,然后从网关到网关B,网络B的网络交换机被传递到网络B的主机
只设置好的关口的IP地址,TCP/IP协议使不同的网络相互连接。那么哪台机器的IP地址是这个?网络开关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、允许路由协议的服务器(实质上相当于路由器)和代理服务器(同样相当于路由器)。
首先,“网络”是一个大概念,它不具体指一种产品类别,只要连接到两个不同的网络的设备可以被称作“网络”;而“路由器”一般指可以路由和传输的特定产品类别,而“路由器”显然能够实现“网络”的功能。
我们在电脑上设置的默认开关是什么?默认的门户实际上不是产品,而是网络层的概念,PC本身没有路由地址功能,因此,PC将所有IP包发送到一个默认的介质传输地址进行传输,也就是默认网关。这个开关可以放在路由器上,它可以在三层开关上,可以在***上,可以在服务器上,因此它与物理设备无关。
Home Router = Router + ** + Switch = ** + Switch + NAT
*** 路由器在许多方面发挥着重要作用,包括自动拒绝不属于网络中的计算机与外部世界之间的交换的一部分输入数据。另一方面,如果从一个未知地址突然出现端口检测,你的路由器将作为护卫,拒绝请求,有效地隐藏你的电脑。
网关 家庭路由器也被用作网络交换机。 网络交换机是一种硬件,可以便利在内部网络上的计算机之间的通信。 没有交换功能,这些设备可以与路由器通信,但不能相互通信。
NAT :我们都知道,家庭路由器允许多个设备同时连接到互联网。所以当一个设备通过家庭路由器向网络发送请求时,当返回响应到达路由器时,路由器必须知道该设备正在发送响应的请求。当我们向网络提供商申请网络访问权时,ISP将公共IP分配给路由器,路由器内部的设备只能使用内部网络IP.NAT的作用是实现公共/网络内ip和端口转换。为此,需要一张表,用于记录内部和外部ip与终端之间的映射关系。
假设内部网络上有两个设备A和B,同时访问同一外部IP端口。 然后在路由器上将记录下列映射关系:
(remote ip_r : port_r)--(local ip_a : a_port)
(remote ip_r : port_r)--(local ip_b : b_port)
假设a_port和b_port的值是相同的,所以当远程响应数据到达路由器时,路由器不能确定该请求是否应给A或B。对于这种情况,NAT使用三维群来区分:(远程ip_r : port_r)(nat port)(local ip_a : a_port),也就是说, 通过添加纳特港口来区分.当A和B要求它时,为两个请求生成两个未使用的端口: a_port和b_port,并记录如下关系:
(remote ip_r : port_r)(nat a_port)(local ip_a : same_port)
(remote ip_r : port_r)(nat b_port)(local ip_b : same_port)
例如A请求访问路由器时,路由器将请求的源IP转换为ISP指定的公共网络IP,并将源端口转换为a_port,并要求B到达路由器时,路由器将请求的源IP转换为ISP指定的公共网络IP,用b_port替换源端口。当A和B请求返回时,取决于返回目标端口(返回目标端口是请求的源端口)是a_port或b_port,可以确定它是否会响应A或B。
在电话网络时代,我们通过猫来连接互联网,现在运营商已经升级到光纤,所以原来的猫被转换为光纤猫。
猫
Modem, 通常称为猫, 是计算机硬件.
它可以将计算机的数字信号转换成可以沿着正常电话线传输的脉冲,这些脉冲可以由另一端的调制器接收并转换成计算机可读语言。
计算机中的信息是由0和1的数字组成,在电话线上只能通过模拟电报传输。 因此,当两个计算机通过电话线传输数据时,必须有一个设备负责转换数字模型。
光猫
光猫与上述猫一样,只是把传输脉冲信号转换成传输光信号。
如今,猫的外观与无线路由器相似,猫的天线也能够传输无线信号,猫可以携带自路由器的功能,也可以装配Wi-Fi功能,猫和路由器集成的机器。
目前,家庭互联网主要由FTTH实现,即光纤接入。宽带互联网、IPTV和电话都通过光纤连接连接,实现“三网融合”。
在生活中,当我们使用手持的管子时,信息可以通过光和黑暗的变化传递,光纤信息类似于这。
在网络世界里,只有0和1,数字信号不能直接转换为光信号,数字信号需要转换成电报,比如1用高压表示,0用低压表示。这些信号被输入光源,如激光器、二极管等。灯源根据信号电压变化点亮,比如高电压发光亮,低电压发光暗。当光信号到达相反的端时,不同电压由光敏元件根据光的亮度产生,转换成电信号,最后,把电报转换成数字信号,这就是我们收到的信号。

互联网上有一些例子
家庭

学校

公司

当目标在本地网络上时,它可以通过IP和子网掩盖确定,然后它可以通过本地(IP地址-物理地址)映射表(arp协议)找到,以直接发送数据包到目标Mac上。
当目标不在本地网络时,则将数据包发送到关口(通常是路由器)
1,从内部网络到公共网络的数据包,通过关口,使用NAT,将转换为关口 MAC,IP层地址被替换为公共实 IP。 关口将有一个映射关系表,以使返回的数据按照该映射关系传输。
当数据通过交换机时,包不会修改数据,并且直接传输。
在通过中间路由器后,必须更改源和目标的Mac。 源Mac由路由器的网络卡转换为一个,目标Mac转换为下一个跳动,当然,覆盖网格的CRC也重新计算
NAT(Network Address Translation,网络地址转换(英语:Network address conversion)于1994年提出。当专用网络内的一些主机已经分配给本地IP地址(即专用网络内仅使用的专用地址),但是现在,当你想与互联网上的主机进行通信(没有加密)时,可使用NAT方法。
该方法需要安装NAT软件在连接到互联网路由器的专用网络上。带NAT软件的路由器称为NAT路由器。它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机与外界通信,将本地地址转换为NAT路由器上的全球IP地址,才能和因特网连接。
实现NAT的几种方法
静态转换 指内部网络的私人IP地址转换为公共IP地址,IP地址双是双。是一成不变的,私人IP地址只能转换为公共IP地址。借助于静态转换,外部网络可以访问内部网络中的特定设备(例如服务器)。
动态转换 指内部网络的私人IP地址转换为公共IP地址,IP地址不确定,是随机的,所有被授权访问互联网的私人IP地址可以随机转换为任何指定的合法IP地址。也就是说,只要您指定哪些内部地址可以转换,以及哪些法律地址被用作外部地址,你可以进行动态转换。动态转换可以使用多个合法的外部地址集。当 ISP提供的合法IP地址比网络内计算机数目略小。可使用动态转换。
港口地址翻译(PAT) :指更改输出数据包的源端口,并进行端口转换,即端口地址转换(PAT,"Port Address Translation":端口作为多路径可重用的方法。内部网络的所有主机可以共享合法的外部IP地址,以访问互联网,因此, IP 地址资源可以最大化。同时,您也可以隐藏在网络内的所有主机,有效避免来自互联网的攻击。因此,目前,在网络中最常用的是多路径重用方法。
ALG(Application Level Gateway) 即应用层面的网关技术:传统的NAT技术只处理IP层和传输层头,但是一些应用层协议,地址信息包含在协议数据消息中。为了使这些应用程序能够透明地完成NAT转换,NAT使用一种叫做ALG的技术,它还可以对这些应用程序中包含的地址信息进行相应的NAT转换。例如,FTP协议的“PORT/PASV”命令、DNS协议的“A”和“PTR”查询命令以及一些ICMP消息类型需要相应的ALG支持。
NAPT(Network Address Port Translation) ,即网络地址端口转换,可以将多个内部地址映射到合法的公共网络地址,但是不同的协议端口与不同的内部地址相符,也就是<内部地址+内部端口>与<外部地址+外部端口>之间的转换。NAPT通常用于访问设备中,它可以在合法IP地址后面隐藏一个小网络。NAPT也被称为多对一NAT,或路径(港口地址翻译,地址过载。
NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的单独IP地址,同时将NAT设备选择的TCP端口编号添加到地址。NAPT是比较常见的NAT变量。通过转换TCP或UDP协议端口号码和地址提供兼容性.除了一对源和目的地IP地址外,该表还包括源和目的地协议端口数组,以及在NAT框中使用的协议端口号码。
NAPT的主要优点是:通用性通过使用全球有效的IP地址获得。其主要缺点是其通信仅限于TCP或UDP。当所有通信是TCP或UDP时,NAPT允许内部计算机访问多个外部计算机,并允许多个内部主机访问同一外部计算机,他们之间不会发生冲突。
网络内实现通常是Nat和Proxy
查看地址分析协议(ARP)使用的“IP到物理”地址转换表
c:>arp -a
查路由表
c:>route print
追踪路由
c:>tracert baidu.com
抓包
Wireshark
本文由 在线网速测试 整理编辑,转载请注明出处。