TCP/IP详解——网络基本概念
一、网络基本概念
网络最开始是为了数据通信。
以前通过ARPA网络,卫星来实现几个计算机的互相通信。
IBM推出自己的网络协议,这时网络没有标准。
1977年:TCP/IP标准。
1980年:ARPAnet全面向TCP/IP迁移。
1984年:ISO-网络标准,国籍标准化组织机构-定制各行各业的标准。
OSI开放式系统互联,同时TCP/IP模型全面推出。
1 字节(byte/B) = 8 比特(bit)
1 千字节(KB) = 1024 字节
1 兆字节(MB) = 1024 KB
1 吉字节(GB) = 1024 MB
1 太字节(TB) = 1024 GB
1 拍字节(PB) = 1024 TB
1. OSI 7层模型
为高层隐藏底层的实现细节,高层拿来用就可以了,不必关注底层实现的细节。
OSI7层 | 作用 |
---|---|
应用层 | 为应用程序提供网络服务(最靠近用户的层) |
表示层 | 数据的解码编译 |
会话层 | 实现应用级别不同的服务区分(依靠进程来区分) |
传输层 | 实现同一个设备上不同应用的区分(依靠端口来区分) |
网络层 | 从全局定位某一台设备 IP地址 |
数据链路层 | 差错检测,链路上mac地址信息 |
物理层 | 规范传输介质的标准-差错检测 |
OSI(开放系统互连)参考模型是一个由国际标准化组织(ISO)制定的用于计算机或通讯系统互连的标准体系,它将通信体系划分为七个层次,从应用层至物理层。
- 物理层(Physical Layer):
- 数据传递方式:在物理层,数据通过比特流进行传输的。进行传输,如电缆、光纤或无线信号等。
- 数据链路层(Data Link Layer):
- 数据传递方式:在数据链路层,数据通过帧(Frame)进行传输,这些帧包括了数据、地址和错误检测等信息。在局域网中,数据链路层通常使用MAC地址进行寻址。
- 网络层(Network Layer):
- 数据传递方式:在网络层,数据被封装成==数据包(packet)并在网络中进行传输==。网络层使用IP地址对数据包进行寻址和路由,以确保数据包能够从源主机传输到目标主机。
- 传输层(Transport Layer):
- 数据传递方式:数据被分割成称为==数据段(segment)的小块,以便在网络上进行传输==。传输层通过端到端的通信来提供可靠的数据传输。它使用端口号和序号来识别不同的应用程序数据。
- 会话层(Session Layer):
- 数据传递方式:会话层负责建立,管理和终止会话连接。定义数据通讯的规则,如数据交换的方式和时间。
- 表示层(Presentation Layer):
- 数据传递方式:表示层负责数据的格式转换,以确保不同系统之间能够互相理解数据的格式。
- 应用层(Application Layer):
- 数据传递方式:应用层最终将数据呈现给用户,因此数据传递方式取决于具体的应用,可能是文本、图像、音频等形式。
1.1 每层对应的协议
- 物理层(Physical Layer):
- Ethernet:双绞线以太网、光纤以太网
- IEEE802.3,IEEE802.11
- 数据链路层(Data Link Layer):
- ARP(地址解析协议)
- PPP(点对点协议)
- HDLC(高级数据链路控制)
- IEEE 802.1Q(虚拟局域网标签协议)
- 网络层(Network Layer):
- IP(网际协议)
- ICMP(互联网控制消息协议)
- OSPF(开放最短路径优先)
- IPsec(IP安全协议)
- 传输层(Transport Layer):
- TCP(传输控制协议)
- UDP(用户数据报协议)
- SCTP(流控制传输协议)
- 会话层(Session Layer):
- NetBIOS(网络基本输入/输出系统)
- PPTP(点对点隧道协议)
- RPC(远程过程调用)
- 表示层(Presentation Layer):
- JPEG(联合摄影专家组)
- GIF(图形交换格式)
- SSL/TLS(安全套接层/传输层安全)
- 应用层(Application Layer):
- HTTP(超文本传输协议)
- FTP(文件传输协议)
- SNMP(简单网络管理协议)
- DNS(域名系统)
- POP3(邮局协议版本3)
1.2 每层涉及的设备
- 应用层(Application Layer):
- 设备:Web服务器、邮件服务器、FTP服务器、DNS服务器等
- 技术:HTTP、HTTPS、SMTP、POP3、IMAP、FTP、DNS等应用层协议
- 传输层(Transport Layer):
- 设备:网关、防火墙
- 技术:TCP(传输控制协议)、UDP(用户数据报协议)
- 网络层(Network Layer):
- 设备:路由器、三层交换机
- 技术:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(地址解析协议)
- 链路层(Data Link Layer):
- 设备:网桥(Bridge)、二层交换机(Switch)、网卡(Network Interface Card)
- 技术:以太网、PPP(点对点协议)、MAC地址、VLAN(虚拟局域网)
- 物理层(Physical Layer):
- 设备:中继器(Repeater)、集线器(Hub)、传输介质(如双绞线、光纤)
- 技术:传输介质、信号调制解调
1.2.1 物理层设备
- 中继器
中继器(RP repeater)又称转发器,主要功能是将信号整形并放大再转发出去,以消除信号经过一长段电缆后,因噪声或其他原因而造成的失真和衰减,使信号的波形和强度达到所需要的要求,进而扩大网络传输的距离。
- 集线器
集线器(Hub) 实质上是一个多端口的中继器。
1.2.2 数据链路层设备
- 网桥
- 二层交换机
二层交换机是一种用于局域网(LAN)的网络设备。它在数据链路层(第二层)上进行数据包转发和交换的操作。与传统的集线器(Hub)相比,交换机能够更智能地根据目标MAC地址来选择性地将数据包转发到目标设备,从而提升了网络的传输效率和安全性。(只要存在MAC地址那么交换机就认为是一台网络设备)
二层交换机通过学习和维护一个MAC地址表(来实现数据包的转发。当收到一个数据包时,交换机会查找目标MAC地址,并查询MAC地址表确定应该将数据包转发到哪个端口。如果MAC地址表中没有对应的目标地址记录,交换机会将数据包广播到所有的端口,以便让目标设备回应并更新相应的记录。
1.2.3 网络层设备
- 三层交换机
三层交换机是一种网络设备,用于在计算机网络中进行数据包转发和路由功能。它位于网络的第三层(网络层),因此又称为网络交换机或路由交换机。三层交换机具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。
- 路由器
路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成路由转发。在多个逻辑网络(即多个广播域)互联时必须使用路由器。
1.2.4 传输层设备
- 网关
网关(Gateway) 就是一个网络连接到另一个网络的“关口”。也就是网络关卡。网关又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。
- 防火墙
1.2.5 交换机和路由器的应用
- 交换机可以隔离冲突域,路由器可以隔离广播域。
- 交换机组建局域网,路由器组建广域网。
交换机的应用
- 集线器Hub的主机A发送数据给Switch主机B时,其他主机都能收到但同时都不能发送数据。
- 交换机分割冲突域,A与B通信,C与D也能相互通信。
- 交换机是基于MAC地址表进行转发数据帧的。
路由器的应用
- 交换机能分割冲突域(例如本机在上网的时候其他主机也可以上网)但不能分割广播域,有设备发送广播帧时其他设备还是可以接收。但路由器分割广播域。
- 一般情况广播帧转发限制在广播域内,广播域边缘是路由器,通常情况路由器不会转发广播帧。
- 路由器负责网络间转发报文。它能够在自身的路由表里查找到达目的地的下一跳地址,将报文转发给下一跳路由器,如此重复,并最终将报文送达目的地。
- 相对于路由器是连接不同地址段的,路由器每个接口之间都必须涉及的是不同的地址段。
1.2.6 问题
为什么有时候还要在路由器的后面先接1台交换机再接计算机
- 路由器是可以直接接电脑等终端设备,为什么标准都是路由器接交换机然后再接电脑等终端,是因为路由器本来就是一个路由设备,用来选路的,不适合大量的数据交换,交换机是用来大量数据交换的,终端在内网的性质就是需要使用交换机,所以标准就是路由器地下接交换机的形式。一般是情况就是在路由器下面接交换机,路由器主要起数据转发,也就是寻址、路由的功能,交换机起到用户接入的目的。但是家用的路由器的话直接就接计算机就可以了,而不必考虑再接交换机。
二层交换机和三层交换机的区别
- 工作层次
- 二层交换机工作在数据链路层(第二层),而三层交换机工作在网络层(第三层)。二层交换机主要基于MAC地址进行转发,而三层交换机除了MAC地址,还能够根据IP地址进行路由判断。
- 转发方式
- 二层交换机使用MAC地址表来学习和转发数据包,对网络进行内部的二层交换。它通过查找源MAC地址和目标MAC地址的映射关系来决定数据包的转发路径。而三层交换机除了学习和转发MAC地址,还可以根据目标IP地址和路由表信息进行数据包的路由,从而支持不同子网之间的通信。
- 处理能力
- 由于三层交换机需要进行路由操作,它在处理能力上相对于二层交换机更为复杂。三层交换机需要维护和处理更多的信息,包括IP地址、路由表和路由协议等。因此,在处理大量数据流量或者复杂网络拓扑时,三层交换机的处理能力通常比二层交换机更强大。
- 安全性和灵活性
- 三层交换机具有更高级别的网络管理和安全控制能力。它支持访问控制列表(ACL)、VLAN和质量 of 服务(QoS)等功能,可以进行更精细的流量控制和安全策略配置。而二层交换机相对简单,功能较为有限。
- 网络范围
- 由于三层交换机支持路由功能,它可以跨越多个子网进行数据转发和通信。而二层交换机仅能够在同一个子网内进行数据转发。
2. TCP/IP 4层模型
核心是网络层和传输层。
- 应用层和传输层使用端到端(end-to-end)协议。
- 网络层提供的是逐跳(hop-to-hop)协议。
- 网络接口层逐介质的。
TCP/IP | 作用 |
---|---|
应用层 | 通过各种协议向终端提供业务应用,处理特定应用程序细节 |
传输层 | 保证源端到目的端的可靠传输,应用到应用的会话 |
网络层 | 处理分组在网络中的活动,例如分组选路 |
网络接口层(数据链路层,物理层) | 处理与电缆的物理接口细节 |
TCP/IP不关注底层物理的介质,主要关注终端之间逻辑数据流的转发。
设备之间的互联:
-
两台设备之间的互联–网线。
-
多台设备之间的互联–交换机设备。
应用程序通常是用户进程,而下三层一般在内核执行(链路层,网络层,传输层)。
3. 物理层传输介质
通信网络除了包含通信设备本身之外,还包含连接这些设备的传输介质,如同轴电缆、网线、双绞线和光纤等。不同的传输介质具有不同的特性,这些特性直接影响到通信的诸多方面,如线路编码方式、传输速度和传输距离等。
简单网络
两个终端,用一条能承载数据传输的物理介质(也称为传输介质)连接起来就组成了一个最简单的网络。
介质-同轴电缆
介质-双绞线
介质-光纤
单模光纤相对于多模光纤传输的更远。
3.1 冲突域
冲突域:共享式网络中进行双向传输的时候,所有节点的集合,当一个冲突域的主机同时发送数据的时候,数据在到达目的之前可能会发生的冲突。
冲突域是指同一时间只有一台设备发送信息的范围,说白了就是一次只有一个设备发送信息,其他的只能等待。因为如果同一个物理网段中的 两台设备同时传输数据,将发生冲突(即两台设备的数字信号将在线路上相互干扰),导致设备必须在之后重传数据。冲突对网络性能有严重的负面影响,因此绝对要避免冲突。
同轴电缆又称为共享介质。
共享式网络中可能会出现信号冲突现象。
使用同轴电缆上网的时候有一个技术是载波侦听多路访问技术,也叫冲突检测技术(CSMA/CD)。
技术工作原理:例如终端设备不停的检测共享式线路的状态,如果现在的线路是空闲的,则可以发送数据,如果不空闲则等待一段时间后继续检测,如果另外一个设备同时发送数据,那么两个设备会产生数据冲突。终端设备检测到冲突后会马上停止数据的发送,并发送一个特殊的阻塞信号,以强化冲突的信息,使得线路上其他的站点检测到冲突。终端设备检测到冲突后会等待一段时间后再进行数据的发送。等待时间通过退避算法来计算。
总结:先听后发,边发边听,冲突停发,随机延迟后重发。
CSMA/CD:共享式网络中检测并避免冲突的机制。
双工模式
半双工模式:通信双方都可以接受和发送数据,但是不能同时进行,例如:对讲机
全双工模式:通信双方都可以同时接受和发送数据。例如:电话
两种双工模式都支持双向数据传输。
4. 数据链路层
4.1 以太网帧结构
网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE802.3标准来管理和控制数据帧的。
不同的协议栈用于定义和管理不同网络的数据转发规则。
应用层数据要经过TCP/IP每一层处理后通过网络传输到达目的端。每一层上都使用了该层是数据协议单元(PDU)彼此交换信息。不同层的PDU包含了不同的信息和名称。
说明:
-
传输层:Segment数据段
-
网络层:Packet数据包
-
网络接口层:Frame数据帧、Bit比特
逐层向下传递数据添加报头和报尾。
4.2 终端之间的通信
数据包在以太网物理介质上传播之前必须经过封装头部信息和尾部信息。
封装后的数据包称为数据帧。数据帧中封装的信息决定了数据如何传输。
以太网传输数据帧有两种格式,选择哪种格式由TCP/IP中的协议簇中的网络层决定。
说明:
-
Header:头部信息。
-
Traile:尾部信息。
4.3 帧格式
说明:Type值<=1500的时候,帧使用的是IEEE802.3格式。type值>=1536的时候,(Ethernet_II以太网2)格式。
4.3.1 Ethernet_II 帧格式
说明:
-
D.MAC:目的mac地址(接受者),6个字节。
-
S.MAC:源mac地址(发送者),6个字节。
-
Type:标识数据段包含的高层协议(类型字段)。
- IP协议:十六进制0x0800
- ARP协议:十六进制0x0806
- RARP协议:十六进制0x8035
-
Data:网络层数据,最小长度为46个字节最大1500个字节。
-
FCS:帧校验字段(循环冗余校验字段),提供了错误检测机制。
4.3.2 IEEE802.3 格式
说明:
-
D.MAC:目的mac地址(接受者)
-
S.MAC:源mac地址(发送者)
-
Length:Data的字节数多大Length就是多大
-
LLC:逻辑链路控制,目的服务访问点
- D.SAP:目的服务访问点(AA)
- S.SAP:源服务访问点(AA)
- Control:控制字段(03)
-
SNAP:机构代码和类型字段
- OrgCode:机构代码(00)
- Type:标识数据段包含的高层协议(类型字段)
-
Data:网络层数据,最小长度为38个字节,最大是1492个字节。
-
FCS:帧校验字段(循环冗余校验字段),提供了错误检测机制
CDP(思科设备的协议)
VTP(思科网络设备中用于在交换机之间自动同步VLAN配置信息的协议)
4.4 以太网和 IEEE802.3 封装
在TCP/IP中,以太网IP数据报的封装是在RFC894中定义的,IEEE802网络的IP数据报封装是在RFC1042中定义的。
最常使用的封装格式是RFC894定义的格式。两种帧格式都采用48位(6字节)的目的地址和源地址。这就是所称的硬件地址或以太网地址(我们口语通常说的MAC地址)。在以太网帧格式中,类型字段之后就是数据;而在802帧格式中,跟随在后面的是3字节的802.2LLC和5字节的802.2SNAP。CRC字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为FCS或帧检验序列)。
802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不满足最小长度要求的数据后面插入填充(pad)字节。
不足最小长度,那么就补足最小长度。例如ARP请求,由于不满足以太网数据包的最小长度,所以会有补齐的位数。
4.5 MTU 和路径 MTU
最大传输单元MTU
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片,把数据报分成若干片,这样每一片都小于MTU。
路径MTU
当在同一个网络上的两台主机互相进行通信时,该网络的MTU是非常重要的。但是如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。重要的不是两台主机所在网络的MTU的值,重要的是两台通信主机路径中的最小MTU。它被称作路径MTU。
- 小于400的值在传输的数据包才不会被分片。
- 返回的MTU和发送时候MTU是不同的。
注意:
- MTU是在出接口查看MTU。
- MTU是包括IP头部+TCP头部+应用程序头部+应用层数据,不能超过1500。
4.6 数据帧传输
数据链路层通过MAC地址来标识网络设备。数据链路层基于MAC地址进行帧传输。
大多数的厂商把MAC地址写入ROM中。
发送端使用接受端的mac地址(主机B的MAC地址)作为目的端的mac地址,以太网封装完成后通过物理层转换成比特流在物理介质上传输。
4.7 以太网的 MAC 地址
由48位二进制数组成,通常表示为12个十六进制的数。
MAC地址由两部分组成分别是供应商代码和序列号。
- 前24位代表该供应商代码,由IEEE管理和分配。
- 后24位序列号由厂商自己分配(OUI)。所以MAC地址是唯一的。
4.8 单播
单播:单一的源端发送到单一的目的端,每个主机接口都有一个唯一的MAC地址。
MAC地址OUI中第一个字节的第8位比特表示地址类型,主机MAC地址这个比特固定为==0==,表示发送到唯一的目的端。
说明:在冲突域中所有的主机都可以收到源主机发送的单播帧,但是其他主机发现目的mac地址不是自己的会丢弃该帧,只有真正的mac地址才会接受并处理该帧。比如发送给主机B,那么主机C和主机D会丢弃该单播帧。
TCP是面向连接的协议,意味着分别运行于两主机(由IP地址确定)内的两进程(由端口号确定)间存在条连接。是属于单播。
4.9 广播
说明:帧从单一的源发送到共享式以太网,广播帧目的mac地址为16进制(全为FF…),所有收到该广播帧的主机都要接受并处理帧,所有机器都处理。
广播仅应用于==UDP==,对需将报文同时传往多个接收者的应用来说十分重要。
一旦有设备发送广播数据,则广播域内所有设备都会收到这个数据包,并且不得不耗费资源去处理,大量的广播数据包将消耗网络带宽及设备资源。
- 受限的广播:255.255.255.255
- 指向网络的广播:10.255.255.255 192.168.1.255
- 指向子网的广播:10.1.1.255 10.1.255.255
- 指向所有子网的广播:10.255.255.255
- 主机处理所有的地址:192.168.255.255(思科路由器支持)
- 路由器支持255.255.255.255,主机不支持(当主机处理)
TFTP 的广播操作
TFTP(Trivial File Transfer Protocol)是一种简单的文件传输协议,它基于UDP协议实现,用于在计算机网络中进行简单的文件传输。TFTP旨在提供一个轻量级的、无状态的文件传输协议,可以用于向远程主机传输文件或从远程主机获取文件。
4.10 组播(多播)
说明:
-
多播仅应用于==UDP==,对需将报文同时传往多个接收者的应用来说十分重要。
-
多播处于单播和广播之间:帧仅传送给属于多播组的多个主机。
-
可以选择性的广播,主机侦听特定的组播地址,接受并处理目的mac地址为该组播的mac地址帧。
当需要网络上的一组主机接受相同的信息,可以设置组播。当然这些接收者需要加入到相应的组播组中才会收到发往该组播组的报文。
组播MAC地址和单播MAC地址是通过第一个字节中的第8个比特来区分,组播MAC地址是1,单播MAC地址0。
D类IP地址格式
- 多播组地址包括为1110的最高4 bit和多播组号(28位)。它们通常可表示为点分十进制数,范围从224.0.0.0到239.255.255.255。
- IP多播相对应的以太网地址范围从 01 : 00 : 5e : 00 : 00 : 00到01 : 00 : 5e : 7f : ff : ff,即以太网地址中最高位的01是人为指定的,用于标识该地址是多播地址。
- 既然地址映射是不唯一的,那么设备驱动程序或IP层就必须对数据报进行过滤,因为网卡肯能受到主机不想接收的多播数据帧。
一个MAC地址对应多个组播地址。
4.11 数据帧的发送和接受
当主机接收到的数据帧所包含的目的MAC地址是自己的时候,会把以太网封装剥掉后送往上层协议。
终端设备接到数据帧的处理方式:
- 帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。
- 主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。
- 如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。
- 如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。
- 如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。如果Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。
4.12 帧的数据过滤过程
广播相对于组播来说不太好,广播会在和应用层交互的时候,如果应用程序没有开放对应的端口号,就会被丢弃,从而占用大量的网络资源。而组播处理,直接在接口卡向驱动程序提交的时候,就可以看到其MAC和组播组的MAC地址是否一致。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!