计算机网络复习笔记(部分)
知识点
计算机网络的组成
- 计算机系统:服务器(Server)和工作站(Workstation)
- 数据通信系统:网络适配器(又称网卡)、传输介质(光纤、同轴电缆、双绞线、微波等)和网络互联设备(中继器[Repeater]、集线器[HUB]、交换机[Switcher]和路由器[Router]等)等
- 网络软件(协议)
几个名词的区别
- computer network – 计算机网络,指使用通信技术将大量计算机系统互联起来的集合。
- internet – 网络互联,指将多个计算机网络互联成大型的计算机网络系统。
- Internet – 英特网(国际互联网)的专用名词,指目前覆盖了全世界的大型计算机网络系统。
- Intranet – 企业内部网(或称内部网),是一个使用与因特网同样技术的计算机网络,它通常建立在一个企业或组织的内部并为其成员提供信息的共享和交流等服务。
计算机网络的分类
- 按网络覆盖的地理范围分类
- 广域网WAN (wide area network):分组交换技术
- 通信子网
- 资源子网
- 局域网LAN (local area network)
- 城域网MAN (metropolitan area network):以光纤为主要传输介质,传输速率高
- 个人区域网PAN (personal area network):无线通信技术(蓝牙Bluetooth、紫蜂ZigBee)
- 人体区域网BAN(body area network)
- 广域网WAN (wide area network):分组交换技术
- 按网络的拓扑结构分类
- 广播式网络
- 点到点网络
数据交换方式
- 数据报方式的特点:
不同的传输路径;
可能出现乱序、重复或丢失现象;
必须带有源节点地址和目的节点地址;
报文传输延迟较大。 - 虚电路方式的特点:
传输前,必须建立一条逻辑连接。
报文分组不必带目的地址、源地址等辅助信息。
分组不会出现丢失、重复与乱序的现象;
分组通过虚电路上路由器时,路由器只需要做差错检测,而不需要做路径选择;
每个路由器可与多个主机之间的通信建立多条虚电路连接。
计算机网络性能的度量指标
- 速率
- 误码率
- 吞吐率
- 延时:发送延时、传播延时、排队延时与处理延时
- 往返时间
通信服务
- 面向连接服务
- 数据传输过程必须经过连接建立、连接维护与释放连接的三个阶段。
数据传输过程中,各个分组不需要携带目的结点的地址。
传输连接(即虚连接)类似一个管道,发送者在一端放入分组,接收者从另一端取出分组。
分组的传输顺序不变,可靠性好,但协议复杂,通信效率不高。
- 数据传输过程必须经过连接建立、连接维护与释放连接的三个阶段。
- 无连接服务
- 分组都携带完整的目的结点地址,各个分组独立传送。
数据传输过程不需要经过连接建立、连接维护与释放连接等三个阶段。
目的主机接收的分组可能出现乱序、重复与丢失现象。
可靠性不是很好,通信协议相对简单,通信效率比较高。
- 分组都携带完整的目的结点地址,各个分组独立传送。
- 确认和重传机制
- 面向连接服务与无连接服务对数据传输的可靠性有影响,但是数据传输的可靠性一般通过确认和重传机制保证。
网络层次结构与网络协议
- 三要素:语义、语法、时序
- 上一层只能使用下一层提供的服务、下层通过接口向相邻上层提供服务
- 服务访问点SAP (Service Access Point)
- OSI参考模型(开放系统互连参考模型 )
- 物理层(Physical Layer)
- 保证比特流通过传输介质正确的传输,为数据链路层提供数据传输服务。
- 根据所使用的传输介质的不同,制定相应的协议,规定数据信号编码方式、传输速率以及相关的通信参数。
- 数据链路层(Data Link Layer)
- 在物理层所提供的物理链路和不太可靠的二进制比特流传输服务的基础上,通过数据链路层协议为相邻网络实体之间的通信提供数据链路服务,以帧为单位交换数据,同时在数据链路上实现流量控制、差错控制等,以实现可靠的数据传输。
- 设计数据链路层的目的是为了将有差错的不可靠的物理线路改造成无差错的可靠的数据链路。
- 网络层(Network Layer):主机到主机
- 使用数据链路层的服务,实现路由选择、拥塞控制与网络互联等基本功能,向传输层的端-端传输连接提供服务。
- 传输层(Transport Layer):端到端
- 屏蔽网络层的不同,基于网络层提供的服务,向应用层的不同进程提供不同类型的服务。
- 会话层(Session Layer)
- 组织和同步不同主机上各种进程之间的通信(会话)
- 表示层(Presentation Layer)
- 数据压缩/恢复、加密/解密
- 应用层(Application Layer)
- 协议规定了应用程序进程之间通信所遵循的通信规则,包括如何构造进程通信的报文,报文应该包括哪些字段,每个字段的意义与交互的过程等问题。
- 物理层(Physical Layer)
- TCP/IP参考模型
- 传输控制协议/互联网络协议
- TCP/IP协议是协议栈,包括了很多的协议
- 应用层---->传输层---->互联网络层---->主机-网络层
各层的主要内容概括(记录一下,防止知识点和层之间对应错)
应用层
域名系统DNS
远程登录服务与TELNET协议
电子邮件服务与SMTP协议
WEB与基于WEB的网络应用
即时通信工作模型
主机配置与动态主机配置协议DHCP
网络管理与简单网管协议SNMP协议
FTP协议
传输层
用户数据报协议UDP
传输控制协议TCP
TCP协议特点
TCP报文格式
TCP连接建立与释放
可靠传输的工作原理
- 停止等待协议
- 连续ARQ协议
- 滑动窗口( GBR / SR )
TCP的可靠传输----确认/重传机制
TCP的流量控制
- 滑动窗口机制
- 持续定时器
- TCP传输效率的考虑
TCP的拥塞控制
- 慢启动
- 拥塞避免
- 快速重传
- 快速恢复
网络层
网络层与IP协议
IPv4协议的基本内容
IPv4地址
路由选择算法与分组交付
Internet控制报文协议ICMP
IP多播与IGMP协议
MPLS协议
地址解析协议ARP
移动IP协议
IPv6协议
数据链路层
数据链路层的基本概念
主要功能
- 链路管理
- 帧同步
- 流量控制 :对数据发送方发送数据速率的控制
- 差错控制:噪声---->纠错码---->检错码(奇偶校验码、循环冗余码)---->反馈重发/超时重发
- 帧的透明传输
- 寻址
帧同步的主要方法:
- 字节计数法
- 字符填充法
- 比特填充法
- 违法编码法。
差错产生与差错控制方法
数据链路层协议
- 面向字符型:二进制同步通信BSC(Binary Synchronous Communication)协议
- 面向比特型数据链路层协议
- 高级数据链路控制协议:HDLC
- 点-点协议:PPP
物理层
物理层与物理层协议的基本概念
物理层协议类型
- 基于点到点通信线路
- 基于广播通信线路
物理层的功能和服务
- 物理连接服务、数据传输服务、顺序化服务、故障情况报告服务、电路标识 服务质量指标
数据通信的基本概念
频带传输技术
基带传输技术
多路复用技术
同步光纤网SONET与同步数字体系SDH
接入技术
问题汇总
请求www页面
- 场景:学生在校园启动一台笔记本电脑:请求和接 受www.google.com
- 详细步骤:(参考自中科大郑烇老师计算机网络)
- 连接到互联网客户端有了IP地址,知道了DNS域名服务器的名字和IP地址,第一跳路由器的IP地址
- 笔记本需要一个IP地址,第 一跳路由器的IP地址,DNS的地址: 采用DHCP
- DHCP 请求被封装在UDP中---->封装在IP---> 封装在 802.3 以太网帧中
- 以太网的帧在LAN上广播 (dest: FFFFFFFFFFFF), 被运行中的DHCP服务器接收到--->以太网帧中解封装IP分组, 解封装UDP,解封装DHCP
- DHCP 服务器生成DHCP ACK 包括客户端IP地址, 第一跳路由器IP地址和 DNS名字服务器地址
- 在DHCP服务器封装, 帧通 过LAN转发(交换机学习)在客户端段解封装
- 客户端接收DHCP ACK应答
- 客户端有了IP地址,知道了DNS域名服务器的名字和IP地址 第一跳路由器的IP地址
- ARP (DNS之前, HTTP之前)
- 在发送HTTP request请求之前, 需要知道www.google.com的IP地 址: DNS
- DNS查询被创建,封装在UDP段中 ,封装在IP数据报中,封装在以太网的帧中。将帧传递给路由器 ,但是需要知道路由器的接口: MAC地址:ARP
- ARP查询广播,被路由器接收, 路由器用ARP应答,给出其IP地址某个端口的MAC地址
- 客户端现在知道第一跳路由器 MAC地址,所以可以发送DNS查询帧了
- 使用DNS
- 包含了DNS查询的IP数据报 通过LAN交换机转发,从客户端到第一跳路由器
- IP 数据报被转发,从校园到达 comcast网络,路由(路由表被 RIP,OSPF,IS-IS 和/或BGP协议创建)到DNS服务器
- 被DNS服务器解封装
- DNS服务器回复给客户端: www.google.com的IP地址
- TCP连接携带HTTP报文
- 为了发送HTTP请求,客户 端打开到达web服务器的 TCP socket
- TCP SYN 段(3次握手的第1次 握手) 域间路由到web服务器
- web 服务器用TCP SYNACK 应 答(3次握手的第2次握手)
- TCP 连接建立了!
- HTTP请求和应答
- HTTP 请求发送到 TCPsocket中
- IP 数据报包含HTTP请求,最终路由到www.google.com
- web 服务器用HTTP应答回应( 包括请求的页面)
- IP 数据报包含HTTP应答最后被路由到客户端
- web 页面最后显示出来了
- 连接到互联网客户端有了IP地址,知道了DNS域名服务器的名字和IP地址,第一跳路由器的IP地址
三次握手/四次挥手(待补充)
为什么是三次握手,2次为什么不行??
为什么是四次挥手,3次行不行??
为什么连接的时候是三次握手,关闭的时候却是四次握手?
因为当 Server 端收到 Client 端的 SYN 连接请求报文后,可以直接发送 SYN+ACK 报文。 其中 ACK 报文是用来应答的,SYN 报文是用来同步的。但是关闭连接时,当 Server 端收到 FIN 报文时,很可能并不会立即关闭 SOCKET,所以只能先回复一个 ACK 报文,告诉 Client 端, "你发的 FIN 报文我收到了"。只有等到我 Server 端所有的报文都发送完了,我才能发送 FIN 报文,因此不能一起发送。故需要四步握手。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix