文章目录
五种基本拓扑结构
-
星型拓扑
所有结点与中心点相连,中心结点控制全网结构,任何两点结点之间的通信都必须通过中心结点。 -
总线拓扑
所有结点与总线(非结点)相连,依靠总线通信,但任意时刻总线只允许有一个信息正在发送,即如果有两个结点同时在总线上发送信息则会引起冲突 -
唤醒拓扑
两两结点相连构成一个环,结点之间的通信可能需要通过多个中继结点,任意一个结点损坏都可能导致整个网络瘫痪 -
树形拓扑
结点之间以树形结构展开,适用于上下界限分明或者需要信息汇总的网络结构(如政府军事) -
网状
任意两结点之间相连形成一个复杂的网状,其可靠性较高,现代网络一般采取此种结构。但由于结构复杂,所以需要很多算法来辅助。(如路由选择,拥塞控制)
分层结构(TCP/IP五层协议)
1.应用层
-
WEB服务
WEB服务一般由浏览器提供,其包含了3个关键技术
1)HTTP协议:超文本传输协议,规定了文本传输的格式,默认端口【80】,底下采用了TCP协议传输
2)HTML:超文本标记语言,只是一门语言,用来标记文字图片等该何如显示
3)URL:统一资源定位符,规定了网络上资源的标记方式
DNS服务 -
域名系统 DNS
把主机名解析为 IP 地址。被设计成分布式系统。 -
文件传输协议 FTP
FTP 在运输层使用 TCP,并且需要建立两个并行的 TCP 连接:控制连接和数据连接。控制连接在整个会话期间一直保持打开,而数据连接在数据传送完毕之后就关闭。控制连接使用端口号 21,数据连接使用端口号 20。 -
动态主机配置协议 DHCP
DHCP 提供了即插即用的连网方式,用户不再需要去手动配置 IP 地址等信息。DHCP 配置的内容不仅是 IP 地址,还包括子网掩码、默认路由器 IP 地址、域名服务器的 IP 地址。工作方式如下:需要 IP 地址的主机广播发送 DHCP 发现报文(将目的地址置为全 1,即 255.255.255.255:67,源地址设置为全 0,即 0.0.0.0:68),DHCP 服务器收到发现报文之后,则在 IP 地址池中取一个地址,发送 DHCP 提供报文给该主机。 -
Web 页面请求过程
- 向 DNS 服务器发送 DNS 查询报文来解析域名。
- 开始进行 HTTP 会话,需要先建立 TCP 连接。
- 在运输层的传输过程中,HTTP 报文被封装进 TCP 中。HTTP 请求报文使用端口号 80,因为服务器监听的是 80 端口。连接建立之后,服务器会随机分配一个端口号给特定的客户端,之后的 TCP 传输都是用这个分配的端口号。
- 在网络层的传输过程中,TCP 报文段会被封装进 IP 分组中,IP 分组经过路由选择,最后到达目的地。
- 在链路层,IP 分组会被封装进 MAC 帧中,IP 地址解析成 MAC 地址需要使用 ARP。
- 客户端发送 HTTP 请求报文,请求获取页面。服务器发送 HTTP 相应报文,客户端从而获取该页面。
- 浏览器得到页面内容之后,解析并渲染,向用户展示页面。
常用端口
2.传输层
网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。
运输层提供了应用进程间的逻辑通信。运输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看见的好像在两个运输层实体之间有一条端到端的逻辑通信信道。
名称 | 含义 | 特点 |
---|---|---|
UDP | 用户数据包协议 | 无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部)。 |
TCP | 传输控制协议 | 面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块) |
TCP的三次握手
首先我们来了解TCP报文段
ACK:确认序号有效
RST:重置连接
SYN:发起了一个新连接
FIN:释放一个连接
假设 A 为客户端,B 为服务器端。
- 首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。
- A 向 B 发送连接请求报文段,SYN=1,ACK=0,选择一个初始的序号 x。
- B 收到连接请求报文段,如果同意建立连接,则向 A 发送连接确认报文段,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。
- A 收到 B 的连接确认报文段后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。
- B 收到 A 的确认后,连接建立。
TCP的四次分手
由于TCP连接时是全双工的,因此每个方向都必须单独进行关闭。这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的链接。收到一个FIN只是意味着这一方向上没有数据流动,既不会在收到数据,但是在这个TCP连接上仍然能够发送数据,知道这一方向也发送了FIN,首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。
前提:A主动关闭,B被动关闭
描述不讨论序号和确认号,因为序号和确认号的规则比较简单。并且不讨论 ACK,因为 ACK 在连接建立之后都为 1。
- A 发送连接释放报文段,FIN=1;
- B 收到之后发出确认,此时 TCP 属于半关闭状态,B 能向 A 发送数据但是 A 不能向 B 发送数据;
- 当 B 要不再需要连接时,发送连接释放请求报文段,FIN=1;
- A 收到后发出确认,此时连接释放。
人性化说法:
- 三次握手流程
- 客户端发个请求“开门呐,我要进来”给服务器
- 服务器发个“进来吧,我去给你开门”给客户端
- 客户端有很客气的发个“谢谢,我要进来了”给服务器
- 四次挥手流程
- 客户端发个“时间不早了,我要走了”给服务器,等服务器起身送他
- 服务器听到了,发个“我知道了,那我送你出门吧”给客户端,等客户端走
- 服务器把门关上后,发个“我关门了”给客户端,然后等客户端走
- 客户端发个“我知道了,我走了”,之后自己就走了
3.网络层
国际协议IP概述
因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。
使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。
与 IP 协议配套使用的还有三个协议:
- 地址解析协议 ARP(Address Resolution Protocol)
- 网际控制报文协议 ICMP(Internet Control Message Protocol)
- 网际组管理协议 IGMP(Internet Group Management Protocol)
IP数据报格式
版本: 有 4(IPv4)和 6(IPv6)两个值;
首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定长度为 20 字节,因此该值最小为 5。如果可选部分的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
区分服务 : 用来获得更好的服务,一般情况下不使用用。
总长度 : 包括首部长度和数据部分长度。
标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。
生存时间 :(TTL ) 它的存在为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。
协议:指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。
首部检验和:因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。
4.数据链路层
三个基本问题
1.封装成帧
将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
2.透明传输
透明表示一个实际存在的事物看起来好像不存在一样。
帧中有首部和尾部,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据中出现首部尾部相同的内容前面插入转义字符,如果需要传输的内容正好就是转义字符,那么就在转义字符前面再加个转义字符,在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
3.差错检测
目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
5.物理层
物理层考虑是如何将采集的信号转化为二进制数据,用什么介质传输信号等等。
通信方式:
1.单向通信,又称为单工通信;
2.双向交替通信,又称为半双工通信;
3.双向同时通信,又称为全双工通信。
带通调制
模拟信号是连续的信号,数字信号是离散的信号。带通调制把数字信号转换为模拟信号。
频道复用技术
-
频分复用、时分复用
频分复用的所有用户在相同的时间占用不同的频率带宽资源;时分复用的所有用户在不同的时间占用相同的频率带宽资源。使用这两种方式进行通信,在通信的过程中用户会一直占用一部分信道资源。但是由于计算机数据的突发性质,没必要一直占用信道资源而不让出给其它用户使用,因此这两种方式对信道的利用率都不高。
-
统计时分复用
是对时分复用的一种改进,不固定每个用户在时分复用帧中的位置,只要有数据就集中起来组成时分复用帧然后发送。 -
波分复用
光的频分复用。由于光的频率很高,因此习惯上用波长而不是频率来表示所使用的光载波。 -
码分复用