计算机网络【3】网络层

主要任务时把分组从源端发送到目的端,为分组交换网上的不同主机提供服务。网络层传输单位是数据报
功能:

  • 路由选择与分组转发(最佳路径 )
  • 异构网络互联
  • 拥塞控制

数据交换方式

  • 电路交换:通信时延小、有序传输、没有冲突、实时性强、独占资源
    建立连接时间长、线路独占,使用效率低,灵活性差,没有差错控制能力
  • 报文交换
    在这里插入图片描述
  • 分组交换

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

IP数据报格式

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述片偏移量=首地址/8
总长度单位是1B
片偏移量单位是8B
首部长度单位是4B

在这里插入图片描述MTU:数据链路层可封装数据的最大传送单元。在以太网中MTU为1500字节

IP地址

分类的IP地址

全世界唯一的32位/4字节标识符,标识路由器主机的接口
IP地址 := (网络号,主机号) 点分十进制
路由器不同的接口有不同的IP地址
在这里插入图片描述在这里插入图片描述A类网络减去网络号全0(特殊地址)和全1(127,环回地址)
B类和C类都要减去网络号全0,不清楚为什么
最大主机数减去全0和全1.

特殊地址
在这里插入图片描述所谓的环回地址指的是该数据报不会实际发送出去,多用于测试。实际上就是自己。
在这里插入图片描述私有IP地址不能在广域网中使用。

网络地址转换(NAT)

路由器对目的地址是私有IP地址的数据报一律不进行转发
网络地址转换NAT(Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址

局域网中的计算机先将数据发送给NAT路由器,NAT路由器再以自己的IP发送给外网
外网会将信息发送给NAT路由器,NAT路由器再根据NAT转换表发送给应该接收的电脑。
在这里插入图片描述
将源IP和端口号(传输层概念)按照NAT转换表转换为可以在外网发送的源IP和端口号。同理,接收外部信息的时候也会首先发送给NAT路由器,再按照NAT路由器将目标IP和端口号更换为局域网中的私有IP和端口号

NAT转换表中LAN端有不同的IP地址,WAN端根据端口号对应不同的IP地址。

子网划分和子网掩码

分类IP地址的弱点:

  1. IP地址空间的利用率有时很低
  2. 两级IP地址不够灵活

将主机号拆分为子网号和主机号,当某些单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
在这里插入图片描述主机号至少要留下两位
如果只剩下一位,那么主机号要么全0要么全1,这都是不允许的。
子网号能够全0全1要看情况(一般子网划分不允许,只有CIDR中可以)

两级IP地址的子网掩码根据类别,比如B类的子网掩码就是255.255.0.0
三级IP地址的子网掩码也很简单,就是不变的地方都是1
子网网络地址:子网掩码与IP地址逐位相与
在这里插入图片描述
路由表中应该包含:

  1. 目的网络地址
  2. 目的网络子网掩码
  3. 下一跳地址

直接交付:路由器直接交给连接的子网
间接交付:路由器需要传给下一跳

路由器转发分组的算法:

  1. 提取目的IP地址
  2. 是否直接交付
  3. 特定主机路由
  4. 检测路由表中有无路径
  5. 默认路由0.0.0.0
  6. TTL耗尽,丢弃,报告转发分组出错

无分类编制CIDR

为了解决IP地址快要耗尽的情况
也叫做无分类域间路由选择CIDR

  1. 消除了传统A类、B类和C类地址以及划分子网的概念
    在这里插入图片描述
    CIDR记法:IP地址后加上/,然后写上网络前缀(可以任意长度)的位数
  2. 融合子网地址和子网掩码,方便子网划分
    CIDR地址块:CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块
    同前面一样,主机部分最多是所有情况-2(不能全0和全1)
    如果给CIDR继续划分子网,子网号是可以全0、全1的。

地址块记法:最小地址
地址掩码(子网掩码):网络前缀部分全都是1
在这里插入图片描述

构成超网

将多个子网聚合成一个较大的子网,叫做构成超网,或者路由聚合。
方法:将路由前缀缩短
用相同的部分当作前缀

最长前缀匹配

使用CIDR时,查找路由表可能得到几个匹配结果,应该选择具有最长网络前缀的路由。(前缀越长,地址块越小,路由越具体)。
在这里插入图片描述

ARP协议

每个主机和路由器都有ARP高速缓存:IP地址和MAC地址的映射(只存同一个局域网内部的
在这里插入图片描述
首先检查ARP高速缓存查新IP地址对应的MAC地址,如果没有就发出ARP广播。
ARP缓存每10-20min更新一次。
广播ARP请求分组:
在这里插入图片描述
目的地址为全1说明是广播分组(帧)
如果是同一个网段内的:单播ARP响应分组
在这里插入图片描述
如果发现不是一个网段的(子网掩码和目标IP相与,发现与自己的网络部分不同):先请求到网关的MAC地址,然后发送给网关,然后在路由器之间传递,知道到达正确的网段,然后路由器再发出广播询问MAC地址,得到回应以后直接发给目标主机。
在这里插入图片描述
在数据链路层上传送数据必须使用MAC地址
ARP协议4中典型情况:

  1. 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址
  2. 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址
  3. 路由器发给本网络的主机A:用ARP找到主机A的硬件地址
  4. 路由器发送给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址

ARP缓存10-20min更新一次。

ARP是用来获取本网络对应IP的MAC地址
ARP协议是自动进行的,主机是无法意识到的。

例题:主机发送IP数据报给主机B,经过了5个路由器,这个过程使用了6次ARP协议

DHCP协议

主机如何获得IP地址:

  • 静态配置:由管理员配置IP地址、子网掩码、默认网关
  • 动态配置:DHCP服务器动态给主机分配IP地址

动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP

DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动网络加入网络,支持在用地址续租

工作流程:

  1. 主机广播DHCP发现报文(试图找到网络中的服务器,服务器获得一个IP地址)
  2. DHCP服务器广播DHCP提供报文(服务器拟分配给主机一个IP地址及相关配置,先到先得)
  3. 主机广播DHCP请求报文(主机向服务器请求提供IP地址)
  4. DHCP服务器广播DHCP确认报文(正式将IP地址分配给主机)

发送的都是广播报文,第三四步之所以在已经确定DHCP服务器和主机IP的情况下仍然使用广播,是要告诉其他DHCP服务器该主机使用一个IP地址,其他DHCP服务器不用再管,而且不能够再使用这个IP地址

ICMP协议

为了更有效地转发IP数据报和提高支付成功的机会
差错(或者异常)报告
在这里插入图片描述

ICMP差错报告报文

  1. 终点不可达:当路由器或者主机不能交付数据时就像远点发送源点不可达报文。(无法交付)
  2. 源点抑制:当路由器或者主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使得原点知道应当把数据报的发送速率放慢(拥塞丢数据)(现在不会用到)
  3. 时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已经收到的数据报片都丢弃,并向源点发送时间超过报文(TTL=0或者数据报残缺)
  4. 参数问题:当路由器或者目的主机收到的数据报的首部中有的字段的值不正确时就丢弃该数据报,并向源点发送数据问题报文(首部字段有问题)
  5. 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
    在这里插入图片描述
    不应该发送ICMP差错报文的情况:
  6. 对ICMP差错报告报文不再发送ICMP差错报告报文
  7. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
  8. 对具有组播地址的数据报都不发送ICMP差错报告报文
  9. 对具有特殊地址(127.0.0.00.0.0.0)数据报不发送ICMP差错报告报文

ICMP询问报文

  1. 回送请求和回答报文:主机或路由器向特定目的主机发出询问,收到此报文的主机必须给源主机或者路由器发送ICMP回答报文。测试目的站是否可达以及了解其相关状态ping
  2. 时间戳请求和回答报文:请求某个主机或路由器回答当前的时间和日期。用来进行时钟同步或者测量时间。
  3. 掩码地址请求和回答报文(不再使用)
  4. 路由器询问和通告报文(不再使用)

ICMP的应用

PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
Traceroute 跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文
Traceroute原理:发送一系列TTL从1递增的IP报,然后让不同距离的路由器都发送错误报告

IPv6

解决地址耗尽问题,改进首部格式(快速处理/转发数据报),支持QoS(Quality of Service,服务质量)
QoS(Quality of Service服务质量):指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,时网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。
在这里插入图片描述在这里插入图片描述对比IPv4和IPv6:

  1. IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间
  2. IPv6将IPv4的校验和字段彻底移除,减少每条的处理时间
  3. IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式。路由器通常不对扩展首部进行检查,大大调高了路由器的处理效率
  4. IPv6支持即插即用(自动配置),不需要DHCP协议。
  5. IPv6的首部长度必须时8B的整数倍,IPv4首部时4B的整数倍。
  6. IPv6只能在主机处分片,IPv4可以在路由器和主机处分片
  7. IPv6使用ICMPv6:附加报文类型:分组过大
  8. IPv6支持资源的预分配,支持实时视像要求
  9. IPv6取消了协议字段,改成下一个首部字段
  10. IPv6取消了总长度字段,改用有效载荷长度字段
  11. IPv6取消了服务类型字段

IPv6地址标识形式:冒号十六进制记法,每四个十六进制位放在一起
如果每个分组前面有多个0,可以删去
在这里插入图片描述IPv6基本地址类型:

  • 单播:一对一通信,可作为源地址+目的地址
  • 多播:一对多通信,可作为目的地址。IPv6中没有广播地址,用多播实现
  • 任播:一对多中的一个(最近的)通信,可作为目的地址

IPv6向IPv4过渡

  • 双栈协议:双协议栈技术就是在一台设备上同时启用IPv4协议栈和IPv6协议栈。这样的话,这台设备既能够和IPv4网络通信,又能够和IPv6网络通信。如果这台设备时一个路由器,那么这台路由器的不同接口上,分别配置了IPv4和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4和IPv6地址,并具备同时处理这两个协议地址的功能。
  • 隧道技术:隧道协议将其他协议的数据帧或包重新封装然后通过隧道发送(IPv6伪装成IPv4等等)

路由算法

静态路由算法(非自适应路由算法):管理员手工配置路由信息。
优点:简答可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛应用于高端安全性的军事网络和较小的商业网络
缺点:路由更新慢,不适用大型网络
动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化路由表项。
路由更新快,使用大型网络,及时响应链路费用或网络拓扑变化。
缺点:增加网络负担、算法复杂

在这里插入图片描述在这里插入图片描述

动态路由算法

全局性:所有路由器掌握完整的网络拓扑和链路费用信息(OSPF)
分散性:路由器只掌握物理相连的邻居及链路费用(RIP)

分层次的路由选择协议:因为因特网规模很大;许多单位不想让外界知道自己的路由选择协议,但是还想连入因特网,所以产生了自治系统AS

自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
一个自治系统AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通

  • 内部网关协议IGP:一个AS内使用的RIP、OSPF
  • 外部网关协议EGP:AS之间使用的BGP

RIP协议

RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大的优点是简单
RIP协议要求网络中的每一个路由器都维护从他自己到其他没有给目的网络的唯一最佳距离记录(即一组距离)

最佳距离:经过的路由器跳数最少

直接交付的距离(跳数)为1,最多包含15个路由器,因此距离16标识网络不可到达

RIP协议只适用于小网络

  1. 仅仅和相邻路由器交换信息
  2. 路由器交换的信息是自己的路由表
  3. 每30S交换一次路由信息,如果从超过180S没有收到邻居路由器的通告,则判定邻居没了,并更新自己的路由表。
    刚开始交换直接连接的网络,距离为1.

经过若干次更新后,所有路由器都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。

RIP报文:包含路由表

距离向量算法
  1. 修改相邻路由器发来的RIP报文中的所有表项:对地址为x的相邻路由器发来的RIP报文,修改报文,把下一跳的地址改为x,并把距离+1.
  2. 对修改后的RIP报文中的每一个项目:
  • 如果没有目的IP,则填入路由表;
  • 如果有目的IP,且下一跳是同一个路由器,则更新(有可能距离不一样);如果下一跳和自己的路由表中的不是同一个路由器,且距离比表中的更近,则更新为距离最近的
  1. 如果180S还没有收到相邻路由器x的更新路由表,则把x设置为不可达路由器(把距离为16)
    在这里插入图片描述
    在这里插入图片描述
    RIP是应用层协议,使用UDP数据报传输
    RIP的特点:当网络出现故障的时候,要经过比较长的时间(数分钟)才能将此信息传送给所有的路由器

坏消息传的慢(慢收敛),好消息传的快

OSPF协议

开放最短路径优先OSPF协议:开放标明OSPF协议不是受一家厂商控制的,而是公开发表的;“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF

主要特征:使用分布式的链路状态协议

  1. 使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。(相当于广播)
  2. 发送的信息就是与本路由器相邻 的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量:费用、距离、时延、带宽)
  3. 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息

最后,所有路由器都能建立 一个链路状态数据库,即全网拓扑图。

链路状态路由算法
  1. 每个路由器发现他的邻居节点【HELLO问候分组】,并了解邻居节点的网络地址。(每隔10S)
  2. 设置到它的每个邻居的成本度量metric
  3. 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中所有链路状态项目的摘要信息
  4. 如果DD分组中的摘要自己都有,则邻站不做处理;如果有自己没有的或者是更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息
  5. 收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新
  6. 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认
  7. 使用Dijkstra根据自己的链路状态构造最短路径

在这里插入图片描述在这里插入图片描述
OSPF是网络层协议

其他特点:

  1. 每隔30min更新一次
  2. 当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多
  3. OSPF不存在坏消息传得慢的问题,它的收敛速度很快

BGP协议

与其他AS的邻站BGP发言人交换信息
在这里插入图片描述交换的网络可达性信息,即要到达某个网络所要经过的一系列AS(路径向量)
发生变化时更新有变化的部分
各个BGP发言人根据所采用的策略从收到的路由信息中找到到达各个AS的较好路由
在这里插入图片描述
BGP是一个应用层协议,借助TCP传送
特点:

  • 支持CIDR
  • 只需要在发生变化时更新有变化的部分

在这里插入图片描述

三种路由协议比较

在这里插入图片描述
在这里插入图片描述

IP组播(多播)

  • 单播:使用一个IP地址作为目的地址,点对点通信
  • 广播:点对多点的传播方式,目的地址是全1的广播地址(MAC地址为全F)
  • 组播(多播):当网络中的某些用户需要特定数据时,组播数据发送这仅仅发送一次数据,借助组播路由协议为组播数据报建立组播分发树,被传递的数据到达距离用户端尽可能金的节点后才开始复制和分发,是一种点对多点的传输方式

在这里插入图片描述在这里插入图片描述

IP组播地址

IP组播地址让原设备能够将分组发送给一组设备,属于多播组的设备将被分配一个组播组IP地址(一群相同需求主机的相同标识)

组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目的地址。源地址总是为单播地址。

  1. 组播数据报是“尽最大可能交付”,不提供可靠交付,应用于UDP(速度快,实时性)。
  2. 对都组播数据包不产生ICMP差错报文
  3. 并非所有D类地址都可以作为组播地址
    在这里插入图片描述

硬件组播

组播MAC地址以十六进制值01-00-5E打头,剩下的6个十六进制位是根据IP组播组地址的最后23位转换得到的
在这里插入图片描述
收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃

IGMP协议&组播路由选择协议

IGMP:网际组管理协议
在这里插入图片描述
IGMP属于网络层协议,用IP数据报传递报文

在这里插入图片描述
组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。
如果局域网中有一个主机响应,那么其他也属于组播组的成员将不会响应。

组播路由选择协议的目的是找出以源主机为根节点的组播转发树

构造树可以避免在路由之间兜圈子。
对不同的多播组对应于不同的多播转发树:同一个多播组,对不同的源点也会有不同的多播转发树。

组播路由选择协议常使用的三种算法:

  • 基于链路状态的路由选择
  • 基于距离向量的路由选择
  • 协议无关的组播(稀疏/稠密)

移动IP

移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。

移动结点:具有永久IP地址的移动设备
归属代理(本地代理):一个移动结点拥有的就居所称为归属网络。在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
外部代理(外部代理):在外部网络中帮助移动结点完成移动网络管理功能的实体称为外部代理

永久地址(归属地址/主地址):移动站点在归属网络中的原始地址
转交地址(辅地址)移动站点在外部网络使用时的临时地址
在这里插入图片描述在这里插入图片描述

路由器

转发和路由选择的区别:

  • 转发是一个路由器内不同端口的变化,而且一个分组进入输入端口不一定转发到输出端口,也有可能是协议之间通信用来维护路由信息的分组,这样的分组就会转发给路由选择处理机。
  • 路由选择是比较宏观的传输路径的选择
    在这里插入图片描述在这里插入图片描述
    查表和转发是路由器中最重要的

在这里插入图片描述若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使得后面再进入的队列的分组由于没有存储空间只能被丢弃。
路由器中的输入和输出队列产溢出是造成分组丢失的重要原因。

三层设备的区别

路由器:可以互联两个不同网络协议的网段。
网桥:可以互联两个物理层和数据链路层不同的网段。
集线器:直通式设备,不能互联两个物理层不同的网段。

判断:对于任何层次的设备,都可以互联该层次及一下层次的不同。 错误,集线器设备是物理层设备,但是集线器无法连接两个物理层不同的网段

在这里插入图片描述

路由表和路由选择

路由转发总是用软件实现的。
在这里插入图片描述
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。
转发表必须包含完成转发功能所必须的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址的映射。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/383654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux探秘之用户态与内核态

https://www.cnblogs.com/bakari/p/5520860.html 一、 Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源&…

哈夫曼算法证明+哈夫曼编码译码程序实现

哈夫曼算法证明 哈夫曼算法是一种贪心算法,我们考虑证明其最优子结构和贪心选择性质: 最优子结构:假设一个树是哈夫曼树,则以其任意节点为根节点的最大子树也是哈夫曼树。 证明:子树的根节点的值是其所有叶子节点出现…

Python3小知识

对于迭代器对象,Python默认赋值是将引用赋值,即指向同一片内存空间。为了实现对内存空间的赋值,我们可以使用分片进行深复制。例如: 当定义元组的时候,我们一般使用小括号将元素包围起来,也可以不使用括号…

汇编:实现日历星期数查询工具

编制一个简单日历查询工具,输入年、月、日,能够判断当日的星期数,并进行输出,数据的输入和结果的输出要有必要的提示,且提示独占一行。 查阅资料 ​ 经过查阅资料,发现有两个相关的算法可以解决这个问题&…

Linux C 实现一个简单的线程池

https://www.cnblogs.com/GyForever1004/p/9185240.html 线程池的定义 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级…

斐波那契数列求解+尾递归

1.普通递归 这里观察f[4]的递归树代替f[10]的递归树(后者比较大,画不下)。 使用递归求解的时候复杂度为T(n)T(n−1)T(n−2)T(n)T(n-1)T(n-2)T(n)T(n−1)T(n−2),观察递归树,发现降速最快的是最右边每次减2&#xff0c…

LCS最长公共子串

问题介绍 LCS问题(longest common subsequence problem)指的是求解两个字符串最长公共子序列问题。这里的子序列是可以不连续的。LCS问题广泛地出现在计算生物学中(DNA序列、系统生成树等等)。这里介绍如何解决LCS问题,以及算法的正确性证明…

操作系统【六】虚拟内存

传统存储管理方式的不足 一次性:作业必须一次性全部装入内存后才能开始运行。这会造成:当作也很大时不能全部装入内存;当大量作业要求运行时,由于内存无法容纳所有作业,因此只有少量作业能够运行,导致多道…

SQL Server【一】简介和基本概念和命令

数据结构和数据库的区别 数据库是应用软件级别研究数据的存储和操作(主要针对磁盘上的数据) 数据结构是在系统软件级别研究数据的存储和操作(主要是针对内存中的数据) 对硬盘数操作是数据库的强项,是数据库研究的核心…

Linux下网络socket编程——实现服务器(select)与多个客户端通信

一、关于socket通信 服务器端工作流程: 调用 socket() 函数创建套接字 用 bind() 函数将创建的套接字与服务端IP地址绑定调用listen()函数监听socket() 函数创建的套接字,等待客户端连接 当客户端请求到来之后调用 accept()函数接受连接请求&#xff0c…

SQL Server【四】

identity 主键自动增长,用户不需要为identity修饰的主键赋值 create table student (std_id int primary key identity(10,5),--(10,5)可以省略,默认为(1,1)std_name nvarchar(200) not null ) select * from student insert into student values (张三…

计算机网络【4】传输层

概述 传输层是只有主机才有的层次 传输层的功能: 传输层提供进程和进程之间的逻辑通信(网络层提供主机与主机之间的逻辑通信)复用和分用传输层对收到的报文进行差错检测 传输层有两个协议: 面向连接的传输层控制协议TCP&…

计算机网络【0】概述

计算机网络概念和功能 概念 是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 计算机网络是互连的、自治(无主从关系)的计算机集合。 功能 数据通信&am…

计算机网络【1】物理层

物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 确定与传输媒体接口有关的特性 机械特性:定义物理连接的特性,如规格、接口形状、引线数目、引脚数目、排列电气特性:规定传输二进制位时的电…

计算机网路【2】数据链路层

结点:主机、路由器 链路:两个节点的物理通道 数据链路:逻辑通道,把实现 控制数据传输协议的硬件和软件加到链路上就构成数据链路 帧:链路层的协议数据单元,封装网络层数据报 数据链路层在物理层提供服务的…

计算机网络【5】应用层

应用层对应用程序的通信提供服务 应用层协议定义: 应用层的功能: 文件传输、访问和管理电子邮件虚拟终端查询服务和远程作业登录 重要协议:FTP、SMTP、POP3、HTTP、DNS 网络应用模型 客户/服务器模型(Client/Server&#x…

操作系统【八】文件管理

文件:一组有意义的信息/数据集合 文件的属性: 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件。同一个目录下不允许有重名文件标识符:一个系统内的个文件标识符唯一,对用户来说毫无可读性…

数据库原理及应用【六】数据库设计

数据依赖 函数依赖FD:一个属性或者一组属性的值可以决定另一个属性的值 多值依赖MVD:一个属性或者一组属性的值可以决定另一个属性的值的集合。FD是MVD的特例 符号表示:Name->->Course,课程多值依赖于姓名 连接依赖&#x…

数据库原理及应用【二】数据模型

层次模型 tree Record and fieldParent-Child relationship(PCR) 每个记录类型只有一个父节点 无法表达多对多信息 采用虚记录解决多对多 网状数据模型 系:主记录->属记录 主记录和属记录都可以有好多个 关系模型 表:table/relation 拥有更高的…

数据可视化【二】HTML+CSS+SVG+D3

HTML、CSS和SVG学习实现代码&#xff1a;https://vizhub.com/Edward-Elric233/89185eb96bc64a9d81777873a0ccd0b9 index.html <!DOCTYPE html> <html><head><title>Shapes with SVG and CSS</title><link rel"stylesheet" href&qu…