- 基础概念
- 互联网由用户直接使用的边缘部分和为边缘部分提供服务的核心部分组成
- 边缘部分:所有连接在互联网上的主机(主机指的是所有与网络直接相连的计算机)组成,用户可以直接使用,用来进行主机之间的通信和资源共享
- 核心部分:大量的网络与连接这些网络所使用的路由器构成,为边缘部分提供服务
- 在网络边缘的端系统之间的通信方式:(1)客户-服务器方式(C/S方式)(2)P2P(对等连接方式)
- 核心部分起到特殊作用的是路由器,它是一个专用的计算机,主要作用是分组交换和存储转发的功能
-
协议和服务的概念和区别:(1)协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。(2)协议是“水平的”,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层服务的。上层使用所提供的服务必须与下层交换一些命令,这些命令在OSI中称为服务原语。
- 物理层
-
通道:(1)单向通道(单工通道):只有一个方向通信,没有反方向交互,如广播 (2)双向交替通信(半双工通信):通信双方都可发消息,但不能同时发送或接收(3)双向同时通信(全双工通信):通信双方可以同时发送和接收信息
- 通道复用技术:(1)频分复用:不同用户在不同频带,所用用户在同样时间占用不同带宽资源(2)时分复用:不同用户在同一时间段的不同时间片,所有用户在不同时间占用同样的频带宽度(3)波分复用:光的频分复用(4)码分复用:不同用户使用不同的码,可以在同样时间使用同样频带通信
- 数据链路层
- 数据链路层使用的信道为(1)点对点信道 (2)广播信道
- 数据链路层协议的三个基本问题:(1)封装成帧(2)透明传输(3)差错检测
- 循环冗余检测CRC(链路数据层广泛使用的检错技术)
-
使用最广泛的数据链路层协议为点对点协议PPP :用户计算机和 ISP 通信时所使用的协议
- 当PPP使用异步传输时,使用字节填充;当PPP使用同步传输时,使用零比特填充 (使用PPP协议传输时字节填充和零比特传输都是为了防止在不同链路下帧边界的误认)
- 数据链路层分为逻辑链路控制LLC(Logical Link Control)子层和媒体接入控制MAC(Medium Access Control)子层
- 载波监听多点接入/碰撞检测CSMA/CD:带有冲突检测的载波侦听多路存取。基本原理是,所有节点都共享网 络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在 发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送
- 网络层
- 网络层提供虚电路服务和数据报服务这两种服务
- 与网际协议IP配套使用的三大协议:(1)地址解析协议ARP(2)网际控制报文协议ICMP(3)网际组管理协议IGMP
- 将网络互相连接起来的中间设备根据所在层次有四种:(1)物理层使用的中间设备叫做转发器(repeater)(2)数据链路层使用的中间设备叫做网桥或桥接器(bridge)(3)网络层使用的中间设备叫做路由器(router)(4)在网络层以上使用的中间设备叫做网关(gateway)
- IP地址分类
- ARP协议的作用是将IP地址翻译为以太网的MAC地址:查找本地IP地址的以太网地址,发送任何IP包的时候都需要
- IP数据报格式:
- 数据报分片例题
- ICMP:Internet控制消息协议,返回错误信息
- PING(Packet InterNet Groper,分组网间探测),用来测试两个主机之间的连通性
- 路由器选择协议分为内部网关协议IGP(Interior Gateway Protocol)和外部网关协议EGP(External Gateway Protocol)
- 自治系统通过内部网关协议(RIP和OSPF)管理,通过外部网关协议(BGP-4)连通另一个自治系统
- RIP(Routing Information Protocol,路由信息协议):RIP是一种分布式的基于距离向量的路由选择协议
- RIP协议的特点:(1)仅和相邻路由器交换信息(2)路由器交换的为自己现在的路由表(3)按固定的时间间隔交换路由信息
- OSPF(Open Sortest Path First,开放最短路径优先):(1)最大特点就是绝对的无环路(2)快速收敛(3)用来计算内部路由路径
- BGP(Border Gateway Protocol,边界网关协议):是一种外部路由协议,计算跨互连的自治网络的路由 ,关键作用是尊重网络的政策约束
- IPv6地址长度128位,使用冒号十六进制记法,因为地址耗尽而出现,128位vs32位
- NAT(Network Address Translation,网络地址转换):(1)将一个外部IP地址映射到多个内部IP地址 (2)使用TCP / UDP端口来区分连接
- 传输层
- TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)
- 若通信数据完整性需让位与通信实时性,则应该选用 TCP 协议(如文件传输、重要状态的更新等);反之,则使用 UDP 协议(如视频传输、实时通信等)
- TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,其传输的单位是报文段
- TCP特点:(1)面向连接(2)只能点对点(一对一)通信(3)可靠交互(4)全双工通信(5)面向字节流
- TCP如何保证可靠传输:(1)确认和超时重传(2)数据合理分片和排序(3)流量控制(4)拥塞控制(5)数据校验
- TCP结构:
-
UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,其传输的单位是用户数据报
- UDP特点:(1)无连接(2)尽最大努力交付(3)面向报文(4)没有拥塞控制(5)支持一对一、一对多、多对多的交互通信(6)首部开销小
- UDP结构:
- TCP和UDP的区别:(1)TCP面向连接、UDP是无连接的(2)TCP提供可靠的服务,UDP不保证可靠交付(3)TCP连接只能是点对点的,UDP支持一对多、多对一、多对多的交互通信(4)TCP面向字节流(可能会出现黏包问题),UDP是面向报文的(不会出现黏包问题)(5)UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)(6)TCP首部开销20字节;UDP的首部开销小,只有8字节
- TCP的黏包问题:(1)原因:TCP 是一个基于字节流的传输服务,“流” 意味着 TCP 所传输的数据是没有边界的,所以可能会出现两个数据包黏在一起的情况(2)解决办法:发送定长包;包头加上包体长度;在数据包之间设置边界,如添加特殊符号 \r\n 标记;使用更加复杂的应用层协议
- TCP的流量控制:(1)原因:流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接收(2)利用滑动窗口机制进行流量控制
- TCP的拥塞控制:(1)原因:拥塞控制就是防止过多的数据注入到网络中,可以使网络中的路由器或链路不致过载(2)解决方法:慢启动( slow-start );拥塞避免( congestion avoidance );快重传( fast retransmit );快恢复( fast recovery )
- TCP传输连接:(1)三次握手建立连接(2)数据传输(3)四次挥手断开连接
- 三次握手图
- TCP为什么要进行三次握手:(1)因为信道不可靠,而 TCP 想在不可靠信道上建立可靠地传输,那么三次通信是理论上的最小值(2)因为双方都需要确认对方收到了自己发送的序列号,确认过程最少要进行三次通信(3)为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误
- 四次挥手图
- TCP 为什么要进行四次挥手:
因为 TCP 是全双工模式,客户端请求关闭连接后,客户端向服务端的连接关闭(一二次挥手),服务端继续传输之前没传完的数据给客户端(数据传输),服务端向客户端的连接关闭(三四次挥手)。所以 TCP 释放连接时服务器的 ACK 和 FIN 是分开发送的(中间隔着数据传输),而 TCP 建立连接时服务器的 ACK 和 SYN 是一起发送的(第二次握手),所以 TCP 建立连接需要三次,而释放连接则需要四次。
- 为什么 TCP 建立连接时可以 ACK 和 SYN 一起发送,而断开连接时则 ACK 和 FIN 分开发送呢?答:断开连接是分别断开,中间可能会存在一段时间的单向数据传输。
- 为什么客户端断开连接时,最后需要 TIME-WAIT 等待 2MSL 呢?(1)为了保证客户端发送的最后一个 ACK 报文能够到达服务端(2)防止已失效的连接请求报文段出现在本连接中(TIME-WAIT 持续 2MSL 可使本连接持续的时间内所产生的所有报文段都从网络中消失,这样可使下次连接中不会出现旧的连接报文段)
- 应用层
- DNS(Domain Name System 域名系统):DNS是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
- FTP(File Transfer Protocol 文件传输协议):FTP是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式,使用 TCP 数据报,提供交互式访问,双向传输
- TFTP(Trivial File Transfer Protocol 简单文件传输协议):一个小且易实现的文件传输协议,也使用客户-服务器方式,使用UDP数据报,只支持文件传输而不支持交互,没有列目录,不能对用户进行身份鉴定
- TELNET协议:是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力
- HTTP(Hypertext Transfer Protocol 超文本传输协议):HTTP是用于从 WWW(World Wide Web,万维网)服务器传输超文本到本地浏览器的传送协议
- SMTP(Simple Mail Transfer Protocol 简单邮件传输协议):SMTP是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式,帮助每台计算机在发送或中转信件时找到下一个目的地
- DHCP(Dynamic Host Configuration Protocol 动态主机设置协议):DHCP是一个局域网的网络协议,使用 UDP 协议工作,用于内部网络或网络服务供应商自动分配 IP 地址给用户,也用于内部网络管理员作为对所有电脑作中央管理的手段
- SNMP(Simple Network Management Protocol 简单网络管理协议):该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况
- Socket(套接字):Socket 建立网络通信连接至少要一对端口号(Socket)。Socket 本质是编程接口(API),对 TCP/IP 的封装,TCP/IP 也要提供可供程序员做网络开发所用的接口
- WWW(万维网):WWW是一个由许多互相链接的超文本组成的系统,通过互联网访问
- URL(Uniform Resource Locator 统一资源定位符):URL是因特网上标准的资源的地址