计算机网络学习笔记

网络边缘,指与互联网相连接的计算机和其他设备(手机,服务器、智能家居)
网络核心:分组路由、交换机、通信链路。
服务器处理、存储了80%的数据。
C/S模式:client,数据的处理在client
B/S模式:browser,数据的处理在server,client只负责展示。跨平台。
无线通信原理:在发射端将数字信号通过AD转化为模拟信号电流,经过馈电设备转换成高频震荡电流,在发射天线发射出电磁波,同理,接收端经过接收天线将电磁波发送给馈电设备,通过DA将震荡电流转换为数字信号。
serve和client,一般来说请求一方、主动启动通信的为client,被请求的为server,serverA可以请求联系另一个serverB,在第二个连接中ServerA也是client。
与C/S相对的还有P2P
在网络通信中,数据是从一个host到另一个host,指的是连接到边缘路由器的所有mcu设备,包括PC、Server、Phone、IOT。
交换机和路由器的区别:
路由器的作用是确定数据的传输路径,也就是起始地址和目标地址。作用在广域网。(OSI第三层网络层)
交换机的作用是在同一个网络内转发数据包,通过mac地址表来确定数据包的传输路径,一般来说工作在本地局域网内。(OSI第二层数据链路层)
linux里c文件写的socket是工作在传输层TCP和网络层IP。
网络层负责将数据包从源设备发送到目的设备
传输层负责定位到主机上的某一个进程(进程到进程)。
会话层,利用传输层提供的服务,在应用程序之间建立会话。
表示层:通过自定义/公用的的语法和语义,解析数据。
实时数据传输例如游戏河南client和深圳server举例

河南客户端OSI7层-> 本地路由2层->ISP3层->骨干3层->深圳ISP3层->目标局域网2层->深圳服务器7层。
物理层的作用:让发送和接收两端确保接收到同样的比特流。包括了信号的生成、传输、检测和解码。
什么是分组交换,什么是电路交换?
分组交换,一整块数据分割为多个数据包,每个数据包到达目的地的链路都可能是不同的,他们经过不同的路由器到达相同的目的地。资源利用率高。
电路交换,从起始地到目的地的链路是专用的,当通信双方建立联系后通信路径不会被其他通信占用。资源利用率低。
图示
分组交换
发送端

[分组1] → [路由器1] → [路由器2] → [接收端]

[分组2] → [路由器3] → [路由器4] → [接收端]

[分组3] → [路由器1] → [路由器4] → [接收端]

电路交换
发送端

[建立连接]

[专用路径]

[数据传输]

[释放连接]

接收端
日常生活中,除了专用电话网络和专线服务外,基本都使用的电路交换来进行通信,例如互联网(服务器、运营商、游戏视频网页等等),局域网(本地路由wifi),移动网络(4g、5g)。
电路交换的信道复用分为两种,分别是频分多路复用和时分多路复用
现实生活中频分复用更广泛,尤其是光纤(波分复用)。
本地局域网技术:
有线:以太网 IEEE802.3
无线:wifi IEEE802.11
信道的复用是为了增加更多信道,信道的分配是为了让数据更有效的传输,提高占用率,正确率。
信道的分配:CDMA/CD,用于有线连接例以太网
CDMA/CA,用于无线连接例wifi。
受控访问:
位图、二进制倒计数、令牌。
位图:给设备编号,只有在成功申请编号(8bit)后才能在指定的时槽传输数据
令牌传递:类似互斥锁和信号量,但是当持令牌设备传输数据时其他设备无法传输数据。
二进制倒计数:每个设备都会发送一个唯一标识符,通过这些唯一标识符来判断优先级,优先级高的优先传送。
二进制倒计数协议(Binary Countdown Protocol)是一种用于总线仲裁的分布式算法,通常用于解决多设备共享总线时的竞争问题。这个协议保证在任意时刻只有一个设备可以使用总线,从而避免冲突。它通过每个设备发送其唯一的标识符(通常是二进制数)来竞争总线的使用权。
工作原理
设备标识符:每个设备都有一个唯一的标识符,通常用二进制数表示。
同时传输:所有需要访问总线的设备同时开始传输其标识符的最高位(MSB)。
仲裁过程:
如果某个设备在当前位上发送了1而检测到总线上是0,则该设备停止传输(因为它的标识符不是最高的)。
如果某个设备发送了0而检测到总线上是1,则它继续传输下一位。
如果一个设备的每一位都能在总线上看到相同的值,它就是胜利者,并获得总线的控制权。
数据传输:胜利者开始数据传输,其他设备继续等待下一个仲裁周期。
详细示例
假设有四个设备A、B、C和D,它们的标识符分别是:
设备A:1010
设备B:1100
设备C:0111
设备D:1001
仲裁过程
最高位(MSB)传输:
A发送1,B发送1,C发送0,D发送1。
总线上检测到1(因为1优先级高于0),C退出竞争。
次高位传输:
A发送0,B发送1,D发送0。
总线上检测到1,A和D退出竞争。
第三位传输:
B发送0。
总线上只有B的信号。
最后一位传输:
B发送0。
最终,B赢得了竞争,获得总线的控制权。
优点
公平性:二进制倒计数协议保证优先级最高的设备获得总线控制权,但每个设备都有机会成为优先级最高的设备。
效率:在竞争过程中,设备可以同时传输其标识符的位,仲裁速度快。
缺点
实现复杂:每个设备需要能够检测总线状态并相应调整其传输。
不适用于大规模系统:随着设备数量增加,标识符长度增加,仲裁时间可能增加。
应用场景
二进制倒计数协议适用于总线通信中需要严格仲裁的场景,如计算机系统中的多处理器通信、工业自动化控制网络等。
有限竞争协议
1.自适应树:
所有站点组成一颗完全二叉树,在根节点传输完成后,如果有多个站点参与竞争,那么之后的所有站点都分为两个时隙,一半站点参与竞争这一时隙,剩下一半站点参与竞争下一时隙。

总线型拓扑:指所有计算机都能够通过一根传输介质进行传输, 只有计算机地址与信号中的目的地址相匹配的计算机才能接收到信息。
所有以太网在设备通信时使用的都是逻辑总线型拓扑。
物理拓扑指的是现实中的计算机如何物理的连接到一起,逻辑拓扑是物理拓扑的共同抽象(通过一根介质传输,无论设备是3、4、5),物理拓扑指的是逻辑拓扑的具现化对象(设备是3、4、5个等等具体的设备)。
MAC(Medium Access Control)的作用?
用来解决 局域网 中共用信道产生竞争时,如何分配信道的使用
所有能网络通信的设备都有mac地址(摄像头、手机、电脑、摄像头等等)
当计算机A想要向计算机B发送数据时,首先会构建一个数据帧。数据帧中包含了目标MAC地址(计算机B的MAC地址)、源MAC地址(计算机A的MAC地址)以及数据内容。
交换机会先查询本地的mac地址表,是否有目标mac,如果有那么会将数据只发送给目标端口,如果没有那么就广播给所有端口。mac接收到位置mac的数据帧后会将其mac地址存储到本地地址表。
mac和tcp/ip的区别
mac工作在数据链路层(2),用于帮助网络设备定位彼此。
tcp/ip涵盖了网络通信的几乎所有层次:网络层IP、传输层TCP/UDP、应用层HTTP/FPTP。
mac负责将ip数据报封装成数据帧,并通过物理网络传输。
mac地址在局域网内是唯一标识,TCP/IP负责全球互联网的数据传输和通信。
一般来说交换机连接的的设备都能互相通信,也就是说同一个交换机下的设备一般来说属于一个广播域。
因为默认情况下他们互相都是能收到对方的信息的,对于设备安全来说隐患非常大,所以有了vlan(Virtual Local Area Network),是指虽然在物理上连接起来了是在一个广播域下,但是通过虚拟分割把他们独立起来了,广播域不再互通。
三层交换机是指结合了交换机和路由的功能的设备,它既能够转发数据链路层的数据帧(mac对应的),也能够处理三层(网络层)的基于IP地址的数据包,可以在不同的子网和vlan之间进行数据包转发。
vlan有多种分类方式,例如依据端口分类、依据协议分类、依据mac分类、依据IP分类。
无线局域网WLAN一般来说无线网络的分布是由多个bss(basic service set)组成的,一个bss是指一个ap和连接此ap(access point)的多个sta(station)。应用实例就是一个路由器ap和连接路由器的电脑、手机、智能设备station。
而多个bss可以组成ess(Extend Service Set)(同一个ssid Service Set IDentifier),ess应用实例就是校园网、公司网络,它们使用的是同一个id和密码,使得sta只需连接任一ap,即可拥有所有ap的连接,也就是说所有的wifi都是同一个账号密码,只要连一个校园内所有的路由都可连接。可以实现从一个ap断开到另一个ap无缝连接(从寝室走到教室连接的同一个wifi名称)。
TCP/IP的网络模型分层:
应用层/传输层/网络层(路由器)/接口层(数据链路+物理)
网络层的核心功能:
1.路由:选择数据报从源端到目的端的路径。
2.转发:将数据包从路由器的输入接口传送到正确的输出接口。
Internet网际协议。
什么是数据报?
数据报是一种数据传输单位,他被用在无连接的网络通信协议中,例如ip协议。
什么是无连接的网络通信协议?
网络通信有两种,一种是连接后确保持久的、端到端的,而无连接的网络协议是指不需要连接,发送到目的地后由应用层来根据数据报里的头信息(源地址,目的地址)来被分发设备选择/解析目标,数据报可能在传输过程中丢失、重复、乱序到达。数据报中自包含了源地址、目的地址、数据长度。
常见的无连接网络协议
UDP、IP、ICMP。
IP是整个互联网的基础协议之一,负责将数据从一个设备传输到另一个设备。,无论这些设备位于世界的哪个位置,IP协议定义了数据报的格式和处理方式,使得数据可以在复杂的网络中进行高效和可靠的传输。
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,路由器都会默认开启此功能,原因:
对于有限的ipv4(32位)资源来说,要节省ip的分配开支是很有必要的,而这种功能就是为了ip地址的有效利用,每当设备连接上AP(路由)时,才会从ip池里获得服务器分配的子网掩码。因此每次上网分配的ip地址都可能不一样
mac地址不想ip地址那样有子网的含义,只需要在同一交换机内不重复即可正常使用。
由于TCP/IP协议族多个层次在共同工作时,类似计算机科学的堆栈,因此又被称为TCP/IP协议栈。

不同的网络通信模型用到了不同的数据交换方式。

  1. 物理层(Physical Layer)
    定义:物理层是OSI模型的第一层,负责实际的物理连接和传输介质的使用。
    数据交换方式:
    比特级交换:物理层传输原始的比特流,不涉及复杂的交换技术,只关注物理信号的传输。
  2. 数据链路层(Data Link Layer)
    定义:数据链路层是OSI模型的第二层,负责节点间的数据帧传输、错误检测和纠正。
    数据交换方式:
    帧交换:在数据链路层,数据以帧(frame)的形式传输。以太网交换机(Ethernet Switch)工作在这一层,通过MAC地址进行帧转发。
  3. 网络层(Network Layer)
    定义:网络层是OSI模型的第三层,负责数据包在不同网络节点之间的路由和转发。
    数据交换方式:
    分组交换(Packet Switching):网络层使用分组交换技术,通过IP地址进行数据包(packet)的传输和路由。路由器(Router)工作在这一层。
  4. 传输层(Transport Layer)
    定义:传输层是OSI模型的第四层,负责端到端的通信管理,包括建立、维护和终止传输连接,以及可靠数据传输。
    数据交换方式:
    报文段交换(Segment Switching):传输层数据被分割成报文段(segment),如TCP和UDP协议使用的方式。
  5. 会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)
    定义:这三层是OSI模型的第五、六、七层,分别负责会话管理、数据表示和应用程序通信。
    数据交换方式:
    消息交换(Message Switching):在这些层次中,数据以消息(message)的形式传输,应用层协议(如HTTP、SMTP等)定义了具体的消息格式和交换方式。

IPV4(Internet protocol version 4)
1.什么是数据报分片?
不同的网络链路有不同的MTU(Max Transmit Unit),该链路能传输的最大传输单元不能超过该大小(头部+data)。所以就需要进行分片。
2.分片过程
2.1发送端分片:当发送端要发送的数据包大于链路的MTU,IP层就会将数据报分成若干个较小的片段。每个片段都包含原始ip头部的一部分以及数据的一部分。每个片段都会被独立的发送到目的地。
2.2IP数据报的头部与分片相关的字段:
Identification:用于唯一标识原始数据报,这样接收端通过这个表示来将同一数据报片段重新组装在一起。
Flags:3个标志位,用到了两个。用于标识是否是分片的一部分,还是数据可以一片容量就足够发送(Size Fragment Offset(片段偏移):指示该片段在原始数据报中的相对位置,以8字节为单位。
3. 分片示例
假设一个IP数据报的大小为4000字节,而某段链路的MTU为1500字节,需要将该数据报分片。
IP头部大小:通常为20字节(可能包含选项字段),这里假设为20字节。
有效载荷大小:MTU - IP头部 = 1500 - 20 = 1480字节。
分片个数:4000字节的有效载荷需要分成若干个1480字节大小的片段。
分片后的结构:
第一个片段:
大小:1480字节(20字节IP头部 + 1460字节有效载荷)
MF标志:1(表示后续还有片段)
偏移量:0
第二个片段:
大小:1480字节(20字节IP头部 + 1460字节有效载荷)
MF标志:1(表示后续还有片段)
偏移量:1460/8 = 182
第三个片段:
大小:1080字节(20字节IP头部 + 1060字节有效载荷)
MF标志:0(表示这是最后一个片段)
偏移量:2920/8 = 365
4. 重组过程
接收端在接收到所有分片后,根据IP头部的标识字段和偏移量字段将分片重新组装成原始数据报。
如果某些片段丢失或损坏,接收端无法完整重组数据报,通常会丢弃整个数据报,并可能请求发送端重新发送。
5. 与分片相关的问题
性能开销:分片和重组增加了处理开销,可能影响网络性能。
可靠性问题:如果某个片段丢失,整个数据报需要重传,影响传输效率。
安全性问题:攻击者可以利用分片实施某些攻击(如片段重叠攻击)。
6. 避免分片的方法
路径MTU发现(PMTUD):发送端通过探测路径上的MTU大小,调整数据包大小以避免分片。
手动调整数据包大小:应用程序可以设置较小的数据包,以确保数据包大小在路径上的所有链路MTU之内。
结论
数据报分片是为了适应网络中不同链路的MTU限制,将大的IP数据报分成多个较小的片段进行传输,并在接收端重新组装的过程。尽管分片有助于数据包传输的灵活性,但也引入了一些性能和安全性方面的问题。因此,现代网络中通常通过路径MTU发现等技术来避免分片。

你可能感兴趣的:(计算机网络,学习,笔记,tcp/ip)