导图社区 计算机网络谢希仁第七版
计算机网络(谢希仁第七版)知识总结,包括计算机网络概述、数据链路层、物理层、物理层、应用层、传输层等内容。
编辑于2022-03-27 11:49:55植物生殖生理,概述了植物生殖生理的复杂过程,从基本概念到具体机制,再到实际应用,做了全面而详细的阐述。描述了花朵在特定生长阶段的状态。探讨了影响花粉生活力的外界条件,如湿度、温度、CO2和O2的相对浓度等。描述了花粉萌发、花粉和柱头的相互识别,以及受精过程中雌蕊的生理变化。
C语言知识点整理,内容涵盖了C语言学习的多个重要方面,从简单的程序结构开始,逐步深入到数据类型、运算符、流程控制结构等核心概念。详细列出了C语言中的运算符,包括自加自减运算符、优先级和结合性等关键概念,帮助学习者理解和掌握这些运算符的使用方法。涵盖了“循环”、“表达式”、“流程结构”、“语句”、“选择判断”和“goto”等知识点,这些都是编写复杂程序时必须掌握的技能。还涉及了函数、数组、内存分区、多文件编程、内存管理、位运算、类型转换、文件操作、类型修饰符、预处理和其他高级主题,如类型重命名等。
计算机操作系统思维导图总结,内容包含操作系统引论、进程的描述与控制、处理机调度与死锁、存储器管理、虚拟存储器、输入输出系统、文件管理。
社区模板帮助中心,点此进入>>
植物生殖生理,概述了植物生殖生理的复杂过程,从基本概念到具体机制,再到实际应用,做了全面而详细的阐述。描述了花朵在特定生长阶段的状态。探讨了影响花粉生活力的外界条件,如湿度、温度、CO2和O2的相对浓度等。描述了花粉萌发、花粉和柱头的相互识别,以及受精过程中雌蕊的生理变化。
C语言知识点整理,内容涵盖了C语言学习的多个重要方面,从简单的程序结构开始,逐步深入到数据类型、运算符、流程控制结构等核心概念。详细列出了C语言中的运算符,包括自加自减运算符、优先级和结合性等关键概念,帮助学习者理解和掌握这些运算符的使用方法。涵盖了“循环”、“表达式”、“流程结构”、“语句”、“选择判断”和“goto”等知识点,这些都是编写复杂程序时必须掌握的技能。还涉及了函数、数组、内存分区、多文件编程、内存管理、位运算、类型转换、文件操作、类型修饰符、预处理和其他高级主题,如类型重命名等。
计算机操作系统思维导图总结,内容包含操作系统引论、进程的描述与控制、处理机调度与死锁、存储器管理、虚拟存储器、输入输出系统、文件管理。
计算机网络(谢希仁第七版)
计算机网络概述
概念
互联的,自治的计算机系统的集合
组成
物理组成
硬件,软件,协议
工作方式组成
边缘部分(在边缘部分端系统的通信)
客户—服务器方式
对等方式P2P
核心部分(分组转发是网络核心最重要的功能)
电路交换
报文交换
分组交换
功能组成
通信子网
资源子网
功能
数据通信
资源共享
计算机网络分类
按分布范围
广域网WAN
城域网MAN
局域网WAN
个人区域网PAN
按拓扑结构
星形网络
总线型网络
环形网络
网状形网络
按传输技术
广播式网络
点对点网络
按使用者
公用网
专用网
标准化工作
因特网草案 建议标准 草案标准 因特网标准
计算机网络体系结构
网络协议
语义 语法 同步
接口
服务
面向连接到服务和无连接的服务
有应答服务和无应答的服务
可靠服务和不可靠服务
五层体系结构
OSI七层体系结构既复杂又不实用
体系结构则得到广泛应用
综合OSI和TCP/IP的优点,采用五层体系结构
TCP/IP的体系结构
计算机网络性能指标
速率
带宽
吞吐量
时延
时延带宽积
往返时间RTT
利用率
数据链路层
使用的两种主要信道
点对点信道
使用一对一的点对点通信方式
广播信道
使用一对多的广播通信方式
被划分为两层
逻辑链路控制子层
媒体接入控制子层(介质访问控制子层)MAC
功能
为网络层提供服务
无确认的无连接服务
适用于实时通信或误码率较低的信道,如以太网
有确认的无连接服务
适用于误码率较高的通信信道,如无线通信
有确认的面向连接服务
适用于对通信要求(可靠性、实时性)较高的场合
链路管理
负责数据链路层连接的建立、维持和释放过程
封装成帧
帧定界、帧同步
透明传输
不管什么样的比特组合,都能在链路上传送
差错检测
位错(比特差错)
使用CRC技术发现差错,通过ARQ方式重传出错的帧
帧错(帧丢失,帧重复,帧失序)
确认和重传机制
可靠传输
对于通信质量良好的有线传输线路,数据链路层不使用确认和重传机制,数据链路层向上提供不可靠传输的服务
对于通信质量较差的无线传输的线路,数据链路层使用确认和重传机制,数据链路层提供可靠传输的服务
自动重传请求
停等式ARQ
单帧滑动窗口与停止等待协议
后退N帧ARQ
多帧滑动窗口与后退N帧协议(GBN)
选择性重传ARQ
多帧滑动窗口与选择重传协议(SR)
注意:在数据链路层中流量控制机制与可靠传输机制是交织在一起的
流量控制
流量控制并不是数据链路层特有的功能,许多高层协议中也提供此功能,只不过控制对象不同而已
对数据链路层来说,控制的是相邻两结点之间数据链路上的流量控制
对运输车来说,控制的是从源端到目的端之间的流量
停止等待协议
滑动窗口协议
介质访问控制
功能
为使用介质的每一个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输
介质访问控制子层(MAC)
用来决定广播信道中信道分配的协议属于介质访问控制子层
信道划分介质访问控制
使用信道多路复用技术
频分多路复用
时分多路复用
波分多路复用
码分多路复用
随机访问介质访问控制
ALOHA协议
发送数据时,不进行检测就发送
如果一段时间内没收到确认,站点就认为传输过程中发生冲突,发送站点等待一段时间再发送,直至成功
时隙ALOHA
各站在时间上同步,并将时间划分为等长的时隙,每个时隙的开始发送一个帧
CSMA协议(载波监听多路访问)
1-坚持CSMA
当结点要发送数据时,首先侦听信道,如果信道可想就立即发送数据
如果信道忙则等待,同时继续监听直至信道空闲
如果发生冲突,则随机等待一段时间后,在重新开始侦听信道
“1-坚持”的含义是:
当侦听到信道忙后,继续坚持侦听信道;
当侦听到信道空闲后,发生帧的概率为1,即立即发送数据
非坚持CSMA
当一个结点要发送数据时,首先侦听信道,如果信道空闲就立即发送数据
如果信道忙就放弃侦听,等待一个随机的时间后再重复上诉过程
P-坚持CSMA
当结点发送数据时,首先侦听信道,如果信道空闲,以概率p发送数据,以概率1-p推迟到下一个时隙
如果信道忙,则等待一个随机的时间后再重新发送
CSMA/CD协议(载波监听多路访问/碰撞检测)
多路访问:这是总线型网络
载波监听:用电子技术检测总线上有没有其他计算机也在发生
碰撞检测:边发送边监听
工作流程:先听后发,边听边发,冲突停发,随机重发
检测到冲突
碰撞窗口(争用期)
经过争用期还没有检测到碰撞,则这次发送不会发生碰撞
重传时机
截断二进制指数退避算法
最小帧长
为了确保在发送数据的同时可以检测到可能的冲突,需要在帧发送完毕之前就能检测到自己是否碰撞
CSMA/CA协议(载波监听多点接入碰撞避免)
碰撞避免
协议的设计要近可能减少碰撞发生的概率
碰撞避免机制
使用二进制指数退避算法
预约信道
发送方在发送数据时同时向其他站点通知自己数据传输的所需时间,以免其他站点发送数据,从而避免碰撞
ACK帧
站点在正确接到发给自己的帧后(除广播帧和组播帧),要向发送方发回一个ACK帧
RTS/CTS帧
可选碰撞机制,主要解决无线网中的“隐蔽站”问题
CSMA/CD与CSMA/CA的区别
CSMA/CD可以检测冲突,当无法避免;CSMA/CA不能检测冲突,只能尽量避免
传输介质不同。CSMA/CD用于总线式以太网,而CSMA/CA用于无线局域网
检测方式不同。CSMA/CD通过电缆中电压变化来检测而CSMA/CA通过能量检测、载波检测来实现
轮训访问介质访问控制
令牌传递协议
局域网
特点
为一个单位所拥有,地理范围和站点数目都有限
具有广播功能
较低的时延和误码率
局域网拓扑结构
星形
环形
总线形
星形加总线形复合结构
传输介质
双绞线(主流传输介质)、同轴电缆、光纤
介质访问控制方法
CSMA/CD
主要用于总线形局域网
令牌总线和令牌环
主要用于环形局域网
以太网
逻辑拓扑是总线形,物理拓扑是星形,以太网中所有计算机共享同一条总线,信息已广播方式发送
使用CSMA/CD方式对总线进行访问控制
采用两项措施简化通信
采用无连接的工作方式
不对数据帧进行编号,也不要求对方发回确认
以太网提供的服务是进最大努力的交付,即不可靠的交付
以太网采用曼彻斯特编码发送数据
可用于提取同步信号
以太网的传输介质
以太网的MAC帧
网卡从网络上每收到一个MAC帧,首先啊用硬件检查MAC帧的MAC地址,如果是本站就收下,否则丢弃
无线局域网(IEEE 802.11标准)
MAC层采用CSMA/CA协议进行介质访问控制
冲突避免要求每发送一个帧之前需要监听信道
信道空闲,可以发送帧发送完一帧,需要再等待一个短的时间间隔,检查接收站是否发回帧的确认ACK
接收确认,则说明发送成功,若在规定时间内没有收到却,表明出现冲突,重发该帧
注意
在无线局域网中,即使在发送过程中发送了冲突,也要把整个帧发送完
在有限局域网中,发生冲突则结点立即停止发送数据
广域网
PPP协议
HDLC(高级数据链路控制)
数据链路层的设备
网桥
隔离碰撞域
处理对象是帧
优点
过滤通信量
扩大了物理范围
可使用不同的物理层
可互连不同类型的局域网
缺点
增加了时延
MAC层没有流量控制功能
只适用于小型局域网,否则会发生广播风暴
以太网交换机
实质上是一个多接口网桥
隔离碰撞域
可利用以太网交换机实现虚拟局域网VLAN
隔离碰撞域
隔离广播域
物理层
物理层接口特性
机械特性
电气特性
功能特性
规程特性
交互方式
单工,半双工,全双工
通信基础
基本概念
数据、信号、码元
信源、信道、信宿
速率
波特
带宽
定理
奈奎斯特定理
理想低通(没有噪声,带宽有限)信道下的极限数据传输率C=2f×
在任何信道中,码元的传输速率是有上限的,超过此上限,就会有严重失真
带宽越宽,数据传送速率越高
码元传输速率受到奈式准则的制约,所以要提高数据传输率,可采用多元制调制
香农定理
信道的极限数据传输速率为C=W
带宽或者信噪比越大,极限传输速率越高
对一定的传输带宽和信噪比,信息传输速率的极限也确定了
调制与编码
调制
把数据变换为模拟信号的过程
基带调制
带通调制
编码
把数据变为数字信号的过程
模拟数据编码技术
幅移键控
频移键控
相移键控
正交振幅调制
脉冲编码技术
采样
量化
编码
数字编码技术
曼彻斯特编码
差分曼彻斯特编码
传输方式
电路交换
报文交换
分组交换
分组交换
虚电路
数据报
传输介质
双绞线
屏蔽双绞线(STP)
无屏蔽双绞线(UTP)
同轴电缆
光纤
光纤通信是利用光导纤维传递光脉冲来进行通信
单模光纤
多模光纤
特点
传输损耗小,中继距离长,适合远距离传输
抗雷电和电磁干扰性好
无串音干扰,保密性好,也不易被窃听或截取数据
体积小,重量轻
无线传输介质
短波通信
微波
地面微波接力通信
优点
微波波段频率很高,通信信道容量很大
微波传输质量很高
投资小,见效快,易于跨越山区,河流
缺点
微波通信会造成失真
易受到恶劣天气影响
与电缆通信系统比较,微波通信隐蔽性和保密性较差
卫星通信
优点
通信距离远、通信费用与通信距离无关
卫星通信的频带很宽,通信容量很大,信号受到的干扰也较小,通信较稳定
缺点
有较大的传播时延
适合广播通信,但保密性较差
物理层设备
中继器(转发器)
将信号整形并放大转发出去,消除信号的失真和衰减问题,具有5—4—3规则
集线器(Hub)
实质是一个多端口的中继器,对信号进行放大后发到其他所有端口
信道复用技术
频分复用(FDM)
时分复用(TDM)
统计时分复用(STDM)
波分复用(WDM)
码分复用(CDM)
码分多址(CDMA)
应用层
网络应用模型
C/S
客户端必须事先知道服务器的地址才能发出连接请求,而服务器则从客户端发来的数据包中获取客户端的地址
一旦连接建立,服务器就能响应客户端请求的内容,服务器也能主动发数据给客户端,用于发送一些消息的通知(如一些错误的通知)
客户机之间不能直接通信,如web应用中的两个浏览器并不能直接通信
web、文件传输(FTP)、远程登录、电子邮件
P2P
任意一对计算机可以直接相互通信
PPlive、Bittorrent和电驴
DNS系统
采用客户C/S模型,运行在UDP之上,使用53号端口
层次域名空间
采用层次树状结构命名方法
域名服务器
根域名服务器
所有的根域名服务器知道所有顶级域名服务器的IP地址;不管哪个本地域名服务器, 对任何一个域名解析,只要自己无法解析,就首先求助于根域名服务器
顶级域名服务器
权限(授权)域名服务器
每一个主机都必须在授权域名服务器处登记
本地域名服务器
域名解析过程
当客户机需要域名解析时,通过本机的DNS客户端构造一个 DNS请求报文,以UDP数据报的方式发往本地域名服务器
域名解析的两种方式
递归查询
递归与迭代相结合
主机向本地域名服务器的查询采用递归查询
本地域名服务器向根域名服务器的查询采用迭代查询
文件传送协议(FTP)
采用C/S模型,运行在TCP之上
FTP在工作时使用两个并行的TCP连接
控制连接
用来传输控制信息;控制连接在整个会话期间一直保持打开状态
数据连接
服务器端的控制进程在接收到FTP客户发来的文件传输后就创建“数据传送进程”和“数据连接”
数据传送进程实际完成文件的传送,在传送完成后就关闭“数据传送连接”并结束运行
控制连接先于数据连接被建立,并晚于数据连接被释放
控制连接建立后,服务器进程用自己的传送数据的熟知端口20与客户进程所提供的端口号建立数据传输连接,即客户进程的端口号是客户进程自己提供的
默认情况下FTP协议使用TCP20端口进行数据连接,TCP21进行控制连接,但是否使用TCP20端口建立数据连接与传输模式有关, 主动方式使用TCP20端口,被动方式有服务器和客户机自行协商
电子邮件
组成结构
用户代理UA
邮件服务器
采用C/S模型
邮件传输协议
邮件发送协议
SMTP
使用TCP连接,端口号25
SMTP通信的三个阶段
连接建立
SMTP不使用中间的邮件服务器;不管发送方和接收方的邮件服务器相隔多远,TCP连接总是在发送方和接收方这两个邮件服务器之间建立
数据传送
连接释放
邮件发送完毕,SMTP客户应发送QUIT命令,SMTP服务器返回信息“221”,表示SMTP同意释放TCP连接,邮件传送的全部过程就结束了
SMTP只能传送ASCII,其他国家的语言和可执行文件不能传送
SMTP传送的邮件是明文,不利于保密
MIME(通用因特网邮件扩充协议)
MIME并没有改动SMTP或取代它,MIME的意图是继续使用目前的格式,但增加了邮件主体的结构,并定义了非ASCII码的编码规则,即MIME邮件可在现有的电子邮件和协议下传送
邮件读取协议
POP3
采用C/S模型,在传输层使用TCP协议,端口110
采用“拉”的通信方式:POP3客户把邮件从邮件服务器“拉”过来
POP服务器只有在用户输入鉴别信息,才允许对邮箱进行读取
POP3两种工作方式
下载并保留
下载并删除
IMAP(网际报文存取协议)
基于万维网的电子邮件
电子邮件从A上午浏览器发送到发送方邮件服务器,不使用SMTP协议,而是使用HTTP协议
从发送方邮件服务器发送到接收方邮件服务器,仍然使用SMTP协议
B用浏览器从接收方邮件服务器读取A发来的邮件,使用HTTP协议
万维网(WWW)
采用C/S模型
组成结构
URL
HTTP
应用层协议,使用TCP连接进行可靠的传输
HTTP协议本身是无连接的,即HTTP虽然使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立HTTP连接
HTTP协议是无状态的,即同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时相同,因为服务器不记得曾经访问过这个客户,也不记得为该客户曾经服务过多少次
HTTP支持两种连接
非持久连接
HTTP/1.0
持久连接
即万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器) 和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文
HTTP/1.1
两种工作方式
流水线方式
非流水线方式
HTTP报文结构
请求报文
HTTP请求报文的一些方法
GET
请求读取URL所标志的信息
HEAD
请求读取URL所标志信息的首部
POST
给服务器添加信息
PUT
在指明的URL下存取一些文档
DELETE
删除指明的URL所标志的资源
TRACE
用来进行回环测试的请求报文
CONNECT
用于代理服务器
响应报文
状态码
1XX
表示通知信息,如请求收到或者正在进行处理
2XX
表示成功,如接受或者知道了
3XX
表示重定向,如要完成请求还必须采取进一步的行动
4XX
表示客户的差错,如请求中有错误的语法或者不能完成
5XX
表示服务器差错,如服务器失效无法完成请求
Cookie
Cookie值由服务器产生,并通过回送给主机的响应报文把Cookie值传给主机
主机收到Cookie后就保存到Cookie文件中,当主机再次浏览该网站时,每发送一个HTTP请求报文,其浏览器就会从Cookie文件中取出这个网站的识别码,放到HTTP请求报文的Cookie中
Cookie是一个存储在用户主机中的文本文件(非计算机的可执行文件,因此不能传播计算机病毒),它由服务器产生,作为识别用户的手段
HTML
DHCP
采用C/S模型,运行在UDP之上
需要IP地址的主机在启动时就向DHCP服务器广播发现报文(目的地址为全一,即255.255.255.255),这时该主机成为DHCP客户;发送广播报文是因为现在还不知道DHCP服务器在什么地方,因此要发现DHCP的IP地址
该主机目前还没有自己的IP地址,因此它将IP数据报的源IP地址设为全0
DHCP收到此报文后,给客户机提供一个IP地址
SNMP
组成结构
SNMP本身
使用无连接的UDP
管理信息结构SMI
管理信息库MIB
传输层
功能
传输层为应用进程之间提供端到端的逻辑通信
复用和分用
复用
发送方不同的应用进程都可以使用同一个传输层协议传送数据
分用
接收方的传输层在剥去报文的首部后能够把这些数据正确的交付到目的进程
差错检测
传输层对收到的报文进行差错检测(首部和数据部分)
网络层只检查IP数据报的首部,不检查数据部分是否出错
提供两种不同的传输层协议
面向连接的TCP
尽管下面的网络是不可靠的,但传输层的TCP协议可以向上提供一条可靠的全双工通信信道
主要适用于可靠性更重要的场合
如FTP、HTTP、TELNET
无连接的UDP
传输层采用无连接的UDP时,传输层向上提供的仍然是一条不可靠的逻辑信道信道
常用于一次性传输比较少量的网络应用,如小文件传输协议(TFTP)、DNS、SNMP和实时协议;也常用于多媒体应用如IP电话、实时视频会议、流媒体等
UDP协议
概述
UDP只在IP数据报服务之上增加了很少一点功能(复用和分用、差错检测)
主要优点
UDP无需建立连接
即发送数据之前无需建立连接,结束时也不用释放连接,可以减少开销和发送数据的时延
若DNS运行在TCP之上而不是UDP,则DNS的速度会慢很多;HTTP使用TCP而非UDP,是因为对于基于文本数据的web网页来说,可靠性是至关重要的
UDP提供尽最大努力交付,即不可靠交付
但这并不意味着应用层对数据的要求是不可靠的,所有维护传输可靠性的工作需要用户在应用层完成
UDP首部开销小
TCP有至少20字节的首部开销,而UDP只有8字节
UDP无拥塞控制
因此网络中出现的拥塞不会影响主机的发送效率
UDP是面向报文的
发送方UDP对应用层交下来的报文,在添加首部后就向下交付给IP层,既不合并,也不拆分
首部格式
源端口
目的端口
长度
UDP用户数据报的长度
检测UDP用户数据报在传输中是否有错,有错就丢弃
UDP的校验和是把首部和数据部分放在一起校验
TCP协议
概述
TCP是在不可靠的IP层之上实现的可靠的数据传输协议
主要解决传输的可靠、有序、无丢失、无重复
特点
面向连接
每一条TCP有两个端点,TCP的连接是点对点的
TCP提供可靠的交付服务、保证传送的数据无差错、不丢失、不重复且有序
TCP提供全双工通信,允许通信双方的应用层在任何时候都能发送数据
TCP面向字节流
虽然应用程序和TCP的交互式一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
TCP报文段
序号字段
TCP是面向字节流的(就是说TCP传送时是按照一个一个字节来传送的),因此TCP连接中传送的数据流中每一个字节都编上号。 序号字段的值是本报文段所发送的数据的第一个字节的序号
确认号字段
是期望收到对方下一个报文段数据的第一个字节序号 若确认号=N,则表明到序号N-1为止的所有数据都正确收到
确认位ACK
只有当ACK=1时,确认号字段才有效
同部位SYN
同步SYN=1表示这是一个连接请求或连接接收请求
SYN=1,ACK=0,表明这是一个连接请求报文,对方若同意建立连接 则在响应报文中使用SYN=,ACK=1
终止位FIN
用来释放连接
检验和
检验范围包括首部和数据两部分
TCP连接管理
使运输层连接的建立和释放都可以正常进行
连接建立
TCP连接的建立采用客户/服务器方式
三次握手过程
客户机TCP向服务器TCP发出一个连接建立请求报文段,该报文段不含应用层数据,且SYN=1,客户机随机选择一个初始序号seq=x
服务器的TCP收到该报文段,如同意建立连接,就向客户机发回确认,并为该TCP连接分配TCP缓存和变量;在确认报文段中,SYN=1,ACK=1,确认号字段ack=x+1, 并且服务器随机产生一个起始序号seq=y;确认报文段同样不含应用层数据
但客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变量;对该报文段ACK=1,序号字段x+1,确认号字段ack=y+1,; 该报文段可以携带数据,也可以不携带数据,如果不携带,则不消耗序号
三次握手后,TCP连接就建立了,接下来就可以传送应用层数据,TCP提供全双工通信,因此通信双方的应用进程在任何时候都可以发送数据
注意:
服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的,这就使得服务器易受到SYN洪泛攻击
数据传送
连接释放
四次挥手
男方(客户机)打断和女方(服务器)分手,就给女方(服务器)发出分手消息,并不再给女方(服务器)发消息,主动中断关系(FIN=1,seq=u,FIN报文段即使不携带数据,也要消耗一个序号)
女方(服务器)收到分手消息后后,立即发出确认(分手就分手),此时,从男方(客户机)到女方(服务器)方向的连接就释放了,TCP处于半关闭状态。当若女方(服务器)发来消息,男方还要接收
若女方(服务器)也没有什么话要对男方(客户机)说了,于是也向男方发出分手的信号
男方(客户机)收到女方发送的分手消息后,必须对女方的消息发出确认消息(我们已经分手了,不要再联系了),必须经过2MSL时间后,男方才能确保女方收到消息,二人彻底分手
TCP可靠传输
TCP提供的可靠数据传输服务是要保证接收方的进程从缓存区读出来的字节流与发送方发出的字节流是完全一样的;TCP使用了校验、序号、确认、重传机制来达到这些目的
序号
TCP首部中的序号字段能保证数据有序的提交给应用层;TCP把数据看成一个无结构但有序的字节流
TCP连接中传送的数据流中的每一个字节都编上一格序号
确认
TCP首部中的确认号是期望收到下一个报文段的数据的第一个字节的序号
TCP采用累积确认,即TCP只确认数据流中至第一个丢失字节为止的字节
重传
超时
冗余ACK
冗余ACK就是再次确认某个报文段的ACK
TCP规定每当收到比期望序号大的失序报文段到达时,发送一个冗余ACK,这么下一个期望收到的序号
TCP规定当发送方收到对同一个报文段的3个冗余ACK时,就可以认为跟在这个被确认报文段之后的报文段已经丢失
TCP流量控制
流量控制时一种速度匹配服务(匹配发送方的发送速率与接收方的接收速率)
TCP提供一种基于滑动窗口协议的流量控制机制
TCP的拥塞控制
慢开始
在TCP刚刚连接好,开始发送TCP报文段时,先令拥塞窗口cwnd=1(即一个最长报文段长度),每收到一个队新报文段的确认,将cwnd+1,即增大一个MSS
发送端的拥塞窗口cwnd每经过一个往返时延RTT就增加一个MSS的大小,而不是加倍,使cwnd按线性规律缓慢增长(即加法增大),而当出现一次超时(网络拥塞)时,则令慢开始门限sstresh等于当前cwnd的一半(乘法减小)
快重传
冗余ACK也用于网络拥塞的检测(丢包当然意味着网络可能出现了拥塞)
当发送方连续收到3个重复的ACK报文时,直接重传对方尚未收到的报文段,二不必等待那个报文段设置的重传计时器超时
快恢复
当发送方收到3个连续的冗余ACK(即重复确认)时,就执行乘法减小算法,把慢开始门限ssthresh设置为出现拥塞是发送方cwnd的一半,然后执行拥塞避免算法(加法增大)
乘法减小
不论在慢开始阶段,还是拥塞避免阶段,只要出现超时(即很可能出现了网络拥塞),就把慢开始门限值减半(即设置为当前拥塞窗口的一半)
网络层
网络层功能
异构网络互连
TCP/IP体系在网络互连上采用的做法是在网络层采用了标准化协议,当相互关联的网络可以是异构的
网络的异构性指的是传输介质、数据编码方式、链路状态协议等,这些特点分别在物理层和数据链路层定义
路由与转发
路由选择
分组转发
拥塞控制
路由算法
静态路由算法
网络管理员手工配置的路由信息
动态路由算法
需要实时获取网络状态
距离-向量路由算法
定期将整个路由表传送给所有与之相邻的结点
不知道全网的网络结构拓扑图
好消息传播的快,坏消息传播的慢
链路状态路由算法
每个参与该算法的结点都有完全的网络拓扑信息
典型链路状态算法是OSPF算法
三大特征
使用泛洪法向本自治系统所有路由器发送信息
发送的信息就是与本路由器相邻的所有路由器的链路状态
只有当链路状态发生变化时,路由器才发送信息
各路由器之间由于频繁的交换链路状态信息,所有的路由器最终都能建立一个链路状态数据库
这个链路状态数据库实际上就是全网的拓扑结构图
IPv4
IPv4格式
版本
首部长度
总长度
标识
标志
片偏移
首部校验和
IP数据报的首部校验和只校验分组的首部,而不校验数据部分
TTL
协议
指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道将数据上交给哪个处理过程
源地址
目的地址
IP数据报分片
当IP数据报的总长度大于链路MTU时,就需要将IP数据报中的数据分片
片在目的主机的网络层被利用IP首部中的标识,标志和片偏移字段重新组装
路由器分片
当路由器准备将IP分组发送到网络上,而该网络又无法将整个分组一次性发送,路由器必须将该分组分片,使其长度能满足这一网络对分组长度的限制
IP分组可以独立的通过各个路径发送,而在传输过程中仍然存在分片的可能(不同网络的MTU可能不同),因此中间路由器不能进行重组。
分片后的IP分组在目的主机进行重组
网络层的分组转发
在转发过程中,得到下一跳路由器的IP地址后不是直接将该地址填入待发送的数据报,而是将该IP地址转换成MAC地址,将其放入MAC帧首部中,根据MAC地址找到下一跳路由
在不同的网络中传送时,MAC帧中的源地址和目的地址要发生变化,当在网桥转发帧时,不改变帧的源地址
IPv4地址
几种特殊地址
网络地址转换
专用网IP地址
因特网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发
普通路由器在转发IP数据报时,不改变源IP地址和目的IP地址
NAT路由器在转发IP数据报时,一定要更换其IP地址
ARP协议
IP地址——MAC地址的转换
IP分组通过多次路由转发到达目标网络后,则改为在目标网络LAN中通过数据链路层的MAC地址以广播方式寻址
IP数据报在被路由器分组转法时其数据链路层封装所使用的MAC地址是在不断变化的
ARP请求是广播发送,ARP响应分组是普通的单播
ICMP
用来允许主机或路由器报告差错和异常情况
ICMP报文作为IP层数据部分,加上数据报的首部,组成IP数据报发送出去
种类
ICMP差错报文
ICMP询问报文
应用
分组网间探测PING
使用了ICMP回送请求和回答报文
PING是应用层直接使用网络层ICMP的一个例子,没有经过运输车的TCP或者UDP
traceroute
用来跟踪分组经过的路由
使用了时间超过差错报告报文
PING工作在应用层,它直接使用的网络层ICMP协议,没有经过运输车的TCP或者UDP协议
Traceroute工作在网络层
IPv6
更大的地址空间、扩展的地址层次结构、灵活的首部格式、改进的选项、允许协议继续扩充、支持资源的预分配
支持即插即用(自动配置)
IPv6不需要使用DHCP
IPv6只有在源结点才能分片,是端到端的,传输路径中的路由器不能分片
因此从一般意义上来讲,IPv6不允许分片(不允许类似在IPv4在路由分片)
增加了安全性
身份验证和保密功能是IPv6的关键特征
IPv4与IPv6比较
IPv4向IPv6过渡
双协议栈
在完全过渡到IPv6之前,使主机或路由器装有两个协议栈,通过双协议栈进行转换
隧道技术
将整个IPv6数据报封装到IPv4数据报的数据部分,这样可以使IPv6在IPv4隧道中传输
比较
IPv6取消
首部长度字段、服务类型字段、总长度字段、选项字段
标识、标志、片偏移字段
检验和字段
路由协议
内部网关协议(IGP)
RIP
使用距离向量算法
基于距离向量的路由选择协议
RIP认为好的路由就是通过它通过的路由器数目少,即优先选择跳数少的路径
一般最多只包含15个路由器因此适用于小型互联网
RIP通过距离向量算法来完成路由表的更新
每隔30s,相邻两个路由器互相间自己的路由表发给对方
经过若干次RIP广播,所有路由器最终都知道了整个IP网络的路由表,称RIP协议最终是收敛的
距离向量算法
缺点
限制了网络规模,它能使用的最大距离为15
路由器之间交换的是完整的路由表,因此网络规模越大,开销越大
当网络出现故障时,会出现慢收敛现象,即坏消息传播的慢
RIP是应用层协议,它使用UDP传送数据(端口520),RIP协议选择的路径不一定是时间最短的,但一定是具有最少路由器的路径
OSPF
使用链路状态路由算法
使用洪泛法向本自治系统所有路由器发送信息
发送的信息是与本路由器相邻的所有路由器的链路状态,而这只是路由器所知道的部分信息
只有当链路状态发生变化时,路由器才使用洪泛法向所有路由器发送信息,并且更新过程收敛很快,不会出现“坏消息穿传播的慢”
OSPF是网络层协议,它不使用UDP或TCP而是直接用IP数据报传送(IP数据报首部协议字段89)
OSPF工作原理
使用Dijkstra算法能算出完整的最优路径,以此构造自己的路由表。当链路状态再次发生变化时,重新计算最优路径
注意
虽然使用Dijkstra算法能算出完整的最优路径,但路由表不会存储完整路径,而只存储“下一跳”(只有到了下一跳路由器,才知道再下一跳应该怎么走)
外部网关协议(EGP)
BGP-4
基于路径向量路由选择协议
力求寻找一条能够到达目的网络去且比较好的路由,而非寻找一条最佳路由
BGP是应用层协议,它是基于TCP连接
工作原理
每一个自治系统至少要选一个路由器作为BGP发言人
一个BGP发言人与系统中其他BGP发言人交换路由信息,就要先建立TCP连接(由此可见BGP报文是通过TCP传送,即BGP报文是TCP报文的数据部分)
然后交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息
当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可以找出到达各个自治系统的比较好的路由
BGP交换的网络可达性信息就是要到达某个网络所经过的一系列AS
IP组播
使用D类IP地址(224.0.0.0--239.255.255.255)
组播数据报也是尽最大努力交付
对组播数据报不产生IGMP差错报文,因此若在PING命令后键入组播地址,不会收到响应
组播地址只能用于目的地址,不能用于源地址
局域网上进行硬件多播
IP多播需要的两个协议
IGMP
让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出某个多播组
两个阶段
新人加入,写申请书,大会讨论,宣布接收
定期查岗,脱离岗位,工资停发
和ICMP类似,IGMP使用IP数据报传递其报文(即IGMP报文加上IP首部构成IP数据报)
多播路由选择协议
找出以源节点为根节点的多播转发树
转发多播数据报时,使用了一下三种方法
洪泛与剪除
隧道技术
基于核心的发现技术
网络层设备
路由器组成和功能
功能
连接异构网络
路由转发
多个逻辑网络互联时必须使用路由器
路由器也可以作为最基础的包过滤防火墙应用
路由器隔离了广播域
组成
路由选择
核心构件:路由选择处理机
分组转发
一组输入端口
一组输出端口
交换结构(关键部件)
通过存储器进行交换
通过总线进行交换
通过互连网络进行交换
路由表与路由转发
路由表
标准路由表
目的网络IP地址、子网掩码、下一跳IP地址、接口
路由器是网络层设备,在路由器上实现了物理层、数据链路层和网络层的功能(要处理的内容也比交换机多),因此路由器的传输时延最大
路由器实现了物理层、数据链路层、网络层的含义是指:路由器有能力对这三层协议的控制信息进行识别,分析以及转换。 更直观的观点就是:路由器有能力对数据“包装”上这三层协议或者“拆开”这三层协议。因此,路由器有能力互连这三层协议不用的网络