第一章 概述
1.互联网的组成
(1)互联网从其工作方式看,可分为边缘部分和核心两个部分。
(2)在网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。
(3)在核心部分起特殊作用的是路由器,起任务是转发收到的分组,这是网络核心部分的重要功能。
(4)分组交换的特点:
报文:整个数据块
分组(包):从报文中划分出的等长的数据段(1024bit),在数据段前加上首部(包头),就构成了一个分组
分组交换的优点:
高效:在传输过程中动态占用传输带宽(不会同时占用整个端到端的线路)
灵活:每个分组独立得选择转发的路由(线路不固定)
迅速:每个分组转发不用先建立连接
可靠:可靠的网络协议,分布式路由的分组交换网(可通过不同路由不同线路完成数据传输,成功率跟高)
分组交换的缺点:
时延:各路由器在存储转发时可能需要排队
其他开销:分组携带的控制信息时多余的开销
2.计算机网络的类别
(1)广域网(WAN)(Wide Area Network)
(2)城域网(MAN)(Metropplitan Area Network)
(3)局域网(LAN)(Local Area Network)
(4)个人区域网(PAN)(Personal Area Network)
3.计算机网络的性能
(1)速率:数据的传输速率,也程数据率或者比特率
(2)带宽:指某个信号具有的频带宽(Hz)或者指网络中某通道传送数据的能力(bit/s)(两种含义)
(3)吞吐量:单位时间内通过某网络(信道、接口)的实际数据量
(4)时延:指数据从网络的一端到另一端需要的时间,具体可分为发送时延、传播时延、处理时延、排位时延
(5)时延带宽积:传播时延和带宽相乘
(6)往返时间RTT:双向交互所需要的时间
(7)利用率:分为信道利用率(信道在使用的时间的占比)和网络利用率(全网络信道利用率的加权平均值)
4.计算机网络体系结构
(1)协议
定义:明确规定了所交换数据的格式以及有关的同步问题,为进行网络中的数据交换而建立的规则、标准或约定(协议是不同节点对等实体之间的通信或约定)
组成要素:语法(结构和格式)、语义(发出何种控制信息,做出何种响应)、同步(实现顺序)
实体是指任何可发送或接收的硬件或软件进程
每层向上层提供的是服务,对等层之间是协议
(2)分层
优点:
1)各层之间是独立的:某层不需要知道下层是如何实现的,只需要知道通过层间接口向上层提供服务
2)灵活性好:任何一层发生变化,只要层间接口不变,此层以下的各层不收影响
3)结构上可分割开
4)易于实现和维护
5)能促进标准化工作
(3)具有五层协议的体系结构
1)应用层
任务是通过进程之间的交互来完成特定的网络应用,协议定义的是应用进程间的通信和交互规则,具体的协议有:域名系统DNS、支持万维网应用的HTTP协议、支持电子邮件的SMTP协议等
应用层交互的数据单元为报文
2)运输层
负责为两台主机中的进程之间的通信提供通用的数据传输服务(网络层是为两台主机提供数据传输服务)
一台主机一般有多个进程,所以运输层具有复用和分用功能
运输层的主要两种协议:
传输控制协议TCP(Transmission Control Protocol)—提供面向连接的、可靠的数据传输服务,数据传输的单位是报文段
用户数据传输协议UDP(User Datagram Protocol)—提供无连接的、尽最大努力的(不可靠)数据传输服务,数据传输的单位是用户数据报
3)网络层
为分组交换网上不同的主机提供通信服务,数据传输单位为IP数据报
任务有:第一是通过一定的算法,在互联网中的每一个路由器生成转发表。第二是路由器接收到分组时指明路径转发到下一个路由器。
协议有无连接的网际协议IP和各种路由器选择协议
4)数据链路层
将网络层下来的IP组装成帧,在两个相邻的节点的链路上传送帧
数据链路层不仅要检错,而且要纠错
5)物理层
物理层上的传输单位为比特bit,所利用的传输的物理媒体不属于物理层协议中,而在物理层下,在物理层规定比特的0和1代表多大的电压、接收方如何识别比特等
第二章 物理层
1.物理层的基本概念
物理层主要考虑的是怎么才能在连接计算机的传输媒体上传输比特流
主要任务为确定与传输媒体的接口有关的特性:
(1)机械特性
(2)电气特性
(3)功能特性
(4)过程特性
其次,物理层还要完成传输方式的转换(并行—串行)
2.数据通信的基本知识
数据通信系统一般为:源系统(发送端、发送方)、传输系统(传输网络)、目的系统(接收端、、接收方)
源系统组成:
(1)源点:产生传输数据
(2)发送器:数据通过发送器编码后在传输系统中传输(比如调制器)
目的系统组成:
(1)接收器:接收传输过来的信号,将模拟信号转为数字比特流(比如解调器)
(2)终点:获得数字比特流后输出
信号(数据的电气或电磁表现)可分为
(1)模拟信号(连续信号):消息参数的取值是连续的
(2)数字信号(离散信号):消息参数的取值是离散的。在使用时间域的波形代表数字信号时,代表不同离散值的基本波形称为码元
信道(表示向某个方向传送消息的媒体)
通信的方式
(1)单向通信(单工通信):只能有一个方向的通信而没有反方向的交互
(2)双向交替通信(半双工通信):双方都可发送消息,但是不能同时发送
(3)双向同时通信(全双工通信):双方能同时发送和接收消息
常用的编码(基带信号调制为另一种形式的数字信号)方式
(1)不归零制:正电平代表1,负电平代表0(只有高低两个电平)
(2)归零制:正脉冲代表1,负脉冲代表0
(3)曼彻斯特编码:位中心向上跳变代表0,向下跳变代表1
(4)差分曼彻斯特编码:每一位中心始终跳变,在开始边界有跳动代表0,无跳动代表1
带通调制(把基带信号的频率范围搬移到较高的频段)方法
(1)调幅(AM):载波的振幅随基带数字信号的变化而变化
(2)调频(FM):载波的频率随基带数字信号的变化而变化
(3)调相(PM):载波的初始相位随基带数字信号的变化而变化
信道能通过的频率范围
奈氏准则:在带宽为W(Hz)的低通信道中,若不考虑噪声影响,则码元传输的最高速率是2W(码元/秒)。传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的识别成为不可能。
注意:奈氏准则和香农公式的速率单位不同,码元可能代表多个bit,比如像‘01’、‘00’、‘11’等的码元所代表的是2bit
信噪比 S/N
一般信噪比用分贝(dB)表示
公式:信噪比(dB)= 10 * log10(S/N) (dB)
香农公式:信道的极限信息传输速率为:
C = W log2(1+S/N) bit/s
香农公式的码元可能代表多个bit
香农公式的意义在于:只要信息传输速率低于信道的极限信息传输速率,就一定存在某种办法来实现无差别传输
3.信道复用技术
在用户共享的高速信道两边有复用器(将各路的数据放入高速信道)和分用器(将高速信道中的数据分给用户)
(1)频分复用:把各路信号搬移到适当的频率位置
(2)时分复用(同步时分复用):将时间划分为一段段等长的时分复用频(TDM帧),更有利于数字信号的传输
(3)统计时分复用 STDM(异步时分复用):TDM的改进版,根据各路实时的情况动态分配时间段
(4)波分复用 WDM:光的频分复用,使用光纤来同时传输多个频率很接近的光载波信号
(5)码分复用 CDM:每个用户在同时间使用同样的频带进行通信,各个用户使用经过特殊挑选的不同码型,因此用户之间不会造成干扰
使用CDMA(码分多址)在每一个比特时间再划分为m(通常为64或128)个短的码片,每个站会唯一的m bit码片序列,如果此战要发送1,就发送m bit码片序列,要发送0,就发送m bit码片序列的反码
每个码片序列不同并且要相互正交(码片各位相互乘后之和除以m等于0—规格化内积),可利用此特性从多个m bit码片序列之和中通过规格化内积找到此战传送的数据(其他站的码片序列与此站的正交,会被滤掉),结果为1则为1,结果为-1则为0
第三章 数据链路层
数据链路层上的信道主要有两种类型:
(1)点对点信道:一对一(PPP协议)
(2)广播信道:一对多(CSMA/CD协议)
数据链路层具有差错检测功能,接收端收到有误的帧会丢弃
1.数据链路层的几个共同问题
链路:从一个节点到另一个节点的物理线路(有线或无线)
数据链路:实现协议的硬件和软件加到链路上
(1)封装成帧
在数据前后分别加上首部和尾部,首部和尾部的一个重要功能就是帧界定(确定帧的界限),此外首部和尾部还包含必要的控制信息
每一种数据链路层协议都规定了帧数据部分的长度上限—最大传送单元MTU
如果数据是由可打印的ASCii码组成的文本文件时,帧界定可使用SOH和EOT(都是ASCii码中的不可打印的控制字符)
(2)透明传输
如果帧为文本文件,因为使用的帧界定为SOH和EOT,所以数据部分的比特编码不会和帧界定的编码相同,可以准确地找到帧,同时可以传输任何从键盘输入的字符,这样的传输即为透明传输
如果数据部分不是文本文件,那可能出现与帧界定比特编码相同的数据而导致帧的长度判断出错
解决办法:在数据部分出现与帧界定编码相同的数据前插入转义字符ESC—字节填充(字符填充)
(3)差错检测
循环冗余检测CRC
假设每组为k个比特,在每组后面加上n位冗余码,一共发送(k+n)位
冗余码的计算方法,现在数据后面加上n个0,再将处理过的数据除以事先规定的(n+1)位除数P,最后的余数R(n位)即为冗余码
接收方将加上冗余码的数据除以除数P,得到余数R,若R为0则无差错
注意:通过CRC差错检测并不是向网络层提供可靠传输的服务,因为只能检测到帧的比特差错,但是不能检测到帧丢失、帧重复、帧失序,只能为无比特差错而不是无传输差错
2.使用广播信道的数据链路层
局域网的优点:
(1)具有广播功能
(2)便于系统的扩展和逐渐演变
(3)提高了系统的可靠性、可用性和安全性
现在的以太网是局域网的同义词,双绞线为局域网的主要传输媒体
共享信道的方式
(1)静态划分信道:像时分、频分、波分和码分复用都属于,这种划分信道的代价太高,不适合局域网
(2)动态媒体接入控制(多点接入):
随机接入(使用较多):用户可以随机地发送消息
受控接入:不能随机发送消息而是要受到一定控制
适配器(网卡)
功能:进行数据串行传输(物理线路)和并行传输(计算机中)进行转换,计算机的硬件地址存储在适配器的ROM中
同时适配器具有过滤功能,对于传过来的MAC帧的MAC地址进行判断,若与本站相同,就接收,否则就丢弃
CSMA/CD 协议
以太网提供的服务是尽最大努力的交付,即不可靠的交付,对有差错的帧是否需要重传则由高层来决定,以太网并不知道这些数重传的帧
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) — 载波监听多点接入/碰撞检测
以太网发送的数据使用曼彻斯特编码的信号
载波监听:边发送边监听,在数据发送之前和数据发送中,每个站都需要不停地检测信道
多点接入:总线型网络,许多计算机连接在一个总线上
碰撞检测:适配器边发送数据边检测信道上的电压变化,当两个站同时放松数据时,在总线上会出现电压叠加的情况,当超过一定阈值,就认为发生了碰撞
产生碰撞的原因:站与站之间有传播时延,一个站在发送数据的信号传输到其他站有时延,在这段时间中其他站可能也在发送数据,从而产生碰撞
电磁波在1km电缆上的传播时延为5微秒
CSMA/CD协议规定信道采用半双工通信(不能同时发送和接收)
当站发送数据后最多2τ(τ是指总线最远两端的传播传播时延)时间就知道是否发生了碰撞,2τ为争用期(碰撞窗口),经过争用期这段时间后还没有检测到碰撞,即能确定不会发生碰撞
产生碰撞后通过截断二进制指数退避算法来确定重传时机
具体算法:
(1)基本退避时间为争用期2τ
(2)从离散的整数集合[0,1,2,…,(2^k-10]中随机取一个数r,重传应推后r倍的争用期,k的计算公式为
k = Min[重传次数,10]
(3)若重传次数为16且没成功时,就放弃该帧
注意:以太网规定帧的最小长度为64字节,小于64字节的帧都是由于冲突而异常冲突而异常终止的无效帧
集线器(Hub)
特点:(1)集线器用于星形网(在物理上看),但是使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议
(2)一个集线器有多个端口,集线器会向除发送端口的其他端口广播(泛洪转发,非智能)
(3)集线器工作在物理层,仅仅简单地转发比特,不进行碰撞检测
以太网的MAC层(数据链路层的一个子层)
在局域网中,硬件地址又称为物理地址或MAC地址,局域网适配器使用的是6字节的MAC地址
MAC帧
结构:
6字节 | 6字节 | 2字节 | 46-1500字节 | 4字节 |
---|---|---|---|---|
目的MAC地址 | 源MAC地址 | 类型 | 数据 | FCS |
由于帧长度不小于64字节,所以数据部分最短为46字节,且MAC帧首部和尾部中并没有帧长度字段
注意:MAC帧从MAC子层向下传到物理层时还需要在帧前加入8字节,前7字节为前同步码(使接收端的适配器在收到MAC帧时迅速调整时钟频率),最后一个字节为帧开始界定符
无效MAC帧:
(1)帧长度不是整数字节
(2)使用MAC帧中的FSC检测到出错
3. 扩展的以太网
在物理层山扩展以太网
使用光纤可以将地理位置较远的主机连接至以太网的集线器
可以使用集线器将多个通过集线器连接的以太网组成一个更大的以太网,在连接之间,每个以太网是一个独立的碰撞域(冲突域),连接之后为一个碰撞域(在碰撞域中,同一时刻只允许一个站发送数据)
在数据链路层上扩展以太网
从网桥(对收到的帧根据其物理地址进行转发和过滤)到交换式集线器(以太网交换机 Switch)
交换机 Switch特点:与集线器不同的是,在交换机中可以同时处理多个数据,采用全双工通信方式,每个端口和连接到端口的主机构成一个碰撞域,其内部有帧交换表(地址表),可以通过自学习算法增加表项
自学习算法
(1)以太网根据收到的数据来自的计算机和其端口,查找交换表中是否有(此计算机,对应的端口)这样的表项,如果没有,则添加,如果有,则进行下一步
(2)根据目的MAC地址,在交换表中查找对应的计算机,若查找到,则根据目的计算机对应的端口转发该帧,若没有找到,则向所有端口广播这个帧
注意:只有发送端不在交换表中才会增加表项,且表项会根据其存在时间进行定期删除
虚拟局域网 VLAN
出现原因:通过交换机连接的以太网输入同一个广播域,会产生很多的广播帧,可能会形成广播风暴,其次也对局域网的信息安全不利,虚拟局域网可以解决这些问题
VLAN帧结构
6字节 | 6字节 | 4字节 | 2字节 | 42-1500字节 | 4字节 |
---|---|---|---|---|---|
目的MAC地址 | 源MAC地址 | VLAN标签 | 类型 | 数据 | FCS |
VLAN标签用于指明发送这个VLAN帧的计算机属于哪个VLAN
将一个局域网分为多个VLAN,每个VLAN为一个广播域
第四章 网络层
1.网络层的几个重要概念
网络层提供的服务是无连接的、简单灵活的、尽最大努力交付的
路由器之间传送的信息有两类:
(1)转发源主机和目的主机之间传送的数据
(2)传送路由信息,目的为了在路由器中创建路由表
2.网际协议IP
与网际协议配套使用的协议有:
(1)地址解析协议 ARP
(2)网际控制报文协议 ICMP
(3)网际组管理协议 IGMP
网络连接使用的中间设备
(1)转发器(工作在物理层,扩大网络)
(2)网桥、交换机(工作在数据链路层,扩大网络)
(3)路由器(工作在网络层,连接不同的网络)
(4)网关(工作在网络层以上)
IP数据报的交付方式
(1)直接交付(不通过路由器直接交给目的主机)
(2)间接交付(通过路由器转发)
互联网可以由多个异构的网络组成
下一跳:在转发分组时到下一个路由器或者主机时称为下一跳
分类的IP地址
结构:
网络号 | 主机号 |
---|---|
n位 | 32-n位 |
n只能取8,16,24等,分别为A,B,C类单播地址(D类为多播地址)
无分类编址 CIDR
结构:
网络前缀 | 主机号 |
---|---|
n位 | 32-n位 |
n可以为0-32之间的任何值
n的计算方法:
(1)斜线法:128.14.32.7/20
(2)与子网掩码与操作
特殊的IP地址
(1)n =32 ,没有主机号 — 主机路由
(2)n=31 — 点对点链路(当两个路由器直接连接时,在两个路由器互相连接的接口处分配此IP地址)
(3)n=0,同时ip地址为0.0.0.0/0 — 默认路由
IP地址的特点
(1)分等级的地址结构,IP地址管理机构只需要分配网络前缀,方便管理,其次,路由器根据网络前缀来转发分组,使转发表中的项目大大减少
(2)IP地址标志的是一台主机和一条链路的接口而不是一台主机,如果一个主机连接多个网络就应该有多个IP地址
(3)一个网络是指具体相同网络前缀主机的集合,所以用转发器或交换机连接的若干局域网任然为一个网络
(4)互联网平等地对待每一个IP地址
IP地址与MAC地址
MAC地址是数据链路层使用的地址,IP地址是网络层使用的地址,在不同的路由器中分组转发时IP数据报的目的地址和原地址不会变化,而MAC帧的目的和源地址在不同的网络上传送时会变化
地址解析协议 ARP
每台主机都有一个ARP高速缓存(ARP cache),存有本局域网中的各主机IP地址对应的MAC地址的映射表
映射表表项的添加:
如果一个局域网中的主机A要查看目的主机B的IP地址和MAC地址,如果ARP高速缓存中没有,则启动ARP,在本局域网广播ARP请求分组,请求获得目的地址IP对应的MAC地址,当主机B收到的ARP请求分组中的IP地址与自己的IP地址相同时,则向ARP高速缓存中写入自己的MAC地址
注意:ARP无法解决不同局域网中的IP地址与MAC地址的对应关系
IP数据报格式
IP数据报首部宽度为32位(四字节),固定部分为20个字节
首部检验和的检验方法:
此字段只检验数据报的首部,而不检查数据
具体方式:将首部分为几个16位的序列,用反码算术运算(它的规则是从低位到高位逐列进行计算。0和0相加是0,0和1相加是1,1和1相加是0,但要产生一个进位1,加到下一列。如果最高位相加后产生进位,则最后得到的结果要加1。)将这些序列相加,最后取和的反码
3.IP层转发分组的过程
基于终点的转发:IP数据报的目的地址为最终网络而不指向转发分组的路由器(目的地址在转发过程中始终不会改变)
最长前缀匹配:采用CIDR编址时,如果一个分组在转发表中可以找到多个匹配的前缀,那么就选择前缀最长的作为匹配的前缀
主机路由(特定主机路由):前缀长度为32位,且32位的IP地址与目的地址完全相同,这样根据最长前缀匹配此目的地址的IP数据报一定由主机路由转发
4.网际控制报文协议 ICMP
ICMP允许允许主机或路由器报告差错情况和提供相关异常的报告
ICMP报文有两种:
(1)ICMP差错报文
(2)ICMP询问报文
ICMP差错报文的类型:
(1)终点不可达
(2)时间超过
(3)参数问题
(4)改变路由(重定向)
5.互联网的路由器选择协议
路由选择协议的核心是路由器算法(获取路由表中的各项目)
自治系统AS:在单一技术管理下的许多网络、IP地址以及路由器,这些路由器使用同一种自制系统内部的路由选择协议
路由选择协议可分为:
(1)内部网关协议 IGP:在自治系统内部使用的路由选择协议,常用的有RIP和OSPF协议
(2)外部网关协议EGP:源主机和目的主机在不同的自治系统中,常用的有BGP协议
RIP协议(适用于小型网络)的工作原理
RIP要求每个路由器中有从它自己到每一个网络的距离记录,距离也称为跳数,每经过一个网络,跳数就加1,RIP允许最大跳数为15,16意味着目标网络不可达
RIP协议的特点:
(1)仅和相邻的路由器交换信息
(2)交换的信息为自己的路由表
(3)在固定的时间间隔内交换信息
RIP协议使得每个路由表中到目的网络的距离都是最短的
RIP报文结构:
RIP的缺点:坏消息传的慢,当网络出现故障时,要经过较长的时间才能将此消息传送到所以路由器
OSPF协议(开放最短路径优先)(适用于规模大的网络)工作原理:
特点:
(1)向自治系统中所有的路由器发送消息(洪泛法),路由器转发此消息给相邻的路由器
(2)发送的消息是与本路由器相邻的所有路由器的链路状态(此路由器只知道部分信息),链路状态是指本路由器与哪些路由器相邻和度量(表示费用、距离、时延、带宽,这些是管理员决定,较为灵活)
(3)当链路状态发生变化或者每隔一段时间,路由器向所有路由器用洪泛法发送链路状态信息
由于频繁地交换链路状态信息,所有的路由器会建立一个链路状态数据库,每个路由器都知道全网有多少个路由器,以及哪些路由器是相连的,其度量(代价)为多少。链路状态数据库更新速度块,这是)OSPF的重要优点
由于使用OSPF的AS规模较大,所以会将AS划分为若干个区域,利用洪泛法交换链路状态信息会被局限于当前区域而不是整个AS
区域分为:
主干区域:上层区域,用来连通其他的下层区域,其中的路由器称为主干路由器,其中的一个路由器专门与其他自治系统交换路由信息
区域:下层区域
在区域的边界至少有一个区域边界路由器,用来连接其他区域的信息
OSPF的分组类型:
(1)问候分组:用来发现和维持邻站的可达性,OSPF规定每10秒就要交换一次问候分组
(2)数据库描述分组:向邻站给出自己的链路状态数据库中所有链路状态项目的摘要信息
(3)链路状态请求分组:向对方请求某些链路状态的详细信息
(4)链路状态更新分组:核心部分,用洪泛法更新全网链路状态
(5)链路状态确认分组:对链路更新分组的确认
OSPF分组也是作为IP数据报的一部分来传送的,但是不用UDP
外部网关协议BGP工作原理:
BGP选择能到达网络前缀比较好的路由,而不是计算出最佳路由
BGP路由
在两个边界路由器之间建立eBGP连接(TCP连接),在这之间交换BGP路由,BGP路由“X,AS1,R1”表示从R1(边界路由器)经过AS1可达X。在AS内部的路由器与边界路由器建立iBGP连接(TCP连接)边界路由器则可以通过iBGP转发BGP路由。(BGP规定,在AS中任何两个路由器之间都有iBGP连接)
不同的自治系统:
(1)末梢AS:向所连接的AS付费才能发送和接收分组
(2)穿越AS:向其他AS有偿转发分组
(3)对等AS:事先协商的两个AS,这两个AS之间发送和接收分组不需要付费
BGP路由选择
如果到达目的前缀有多条路径,就需要选择一条较好的BGP路由
按此方式从(1)到下依次选择(只选择一个,选出来就停止)
(1)本地偏好值最高的路由首先选择:根据BGP路由中本地偏好属性进行选择
(2)选择AS跳数最少的路由
(3)使用热土豆路由选择算法:选择经过最少次数的转发离开发送端的AS的BGP路由
BGP报文种类:
(1)OPNE(打开)报文:与BGP连接对等端建立关系
(2)UPDATE(更新)报文:用来通告某一路由的信息,以及列出要撤销的路由(核心)
(3)KEEPALIVE(保活)报文:用来周期性地确定与对等端的连通性
(4)NOTIFICATION(通知)报文:用来发送检测的差错
BGP报文作为TCP的数据部分进行传送
第五章 运输层
1.运输层协议概述
运输层向上面的应用层提供通信服务
运输层提供复用(不同的应用进程使用同一个运输层协议传送数据)和分用(接收方将数据正确交付目的进程)功能
网络层是为主机提供通信服务,运输层在网路层的基础上为应用进程提供服务
运输层还要对从网络层来的报文进行差错检测(在网络层仅对首部进行检测)
运输层协议:
(1)面向连接的TCP
(2)无连接的UDP
传输控制协议TCP
在传送数据前一定要建立连接,传送数据后要释放连接。TCP不提供广播和多播服务。
TCP连接时可靠的、面向连接的服务
用户数据协议UDP
传送数据之间不需要建立连接,提供不可靠交付
协议端口(端口):位于应用层和运输层之间,应用进程提供端口进行数据的传递,不同计算机的两个进程进行通信需要知道对方的IP地址和端口号
端口号(端口的标识)的类别:
(1)服务器使用的端口号:分为熟知端口号和登记端口号
(2)客户端使用的端口号(短暂端口号):仅在客户进程运行时才动态选择
2.用户数据报协议UDP
特点:
(1)无连接的
(2)尽最大努力交付:不可靠交付
(3)面向报文的:UDP对于应用层下来的报文不进行拆分,不合并,保留报文的边界
(4)没有拥塞控制:要求源主机以恒定的速率发送数据,并且允许部分数据丢失
(5)支持一对一、一对多、多对一和多对多的交互通信
(6)首部开销小:只有8个字节
首部格式:
2字节 | 2字节 | 2字节 | 2字节 |
---|---|---|---|
源端口 | 目的端口 | 长度 | 检验和 |
如果接收方发现目的端口不正确,会通过网络层发送ICMP差错报文
在计算检验和是,会在报文前加入12字节的伪首部,计算方式与IP数据报检验和的方式相同,但是UDP数据报会检验整个数据报
3.传输控制协议TCP概述
特点:
(1)面向连接的运输层协议
(2)TCP连接只能有两个端点
(3)可靠交付的服务
(4)全双工通信:连接的两端都设有发送缓存和接收缓存
(5)面向字节流:流指流入到进程或从进程流出的字节序列
TCP连接的两个端点叫做套接字(端口号拼接到IP地址,如192.3.4.5:80)或者插口
TCP连接 ::= {socket1,socket2} = {(IP1,port1),(IP2,port2)}
4.TCP报文段的首部格式
序号是指本报文段第一个字节的编号(TCP会将传送的数据流的每一个字节编号)
确认号是期望收到对方下一个报文段的第一个数据字节的序号
紧急URG:=1时,表示数据要尽快传送,而不是排队传送
确认ACK:=1时确认号字段才有效,TCP规定在建立连接后将ACK置1
推送PSH:=1时,对方接收到此数据尽快交付接收应用进程
复位RST:=1时,表示TCP连接出现严重差错,必须释放连接并重新建立
同步SYN:在连接建立时用来同步信号。SYN=1 而ACK=0时表明是一个连接请求,若对方同意,则SYN=1 ACK=1
终止FIN:=1时,释放连接
窗口:报文发送方的接收窗口的大小,给对方设置发送窗口作为依据
检验和:检验整个TCP报文
5.TCP可靠传输实现
以字节为单位的滑动窗口
发送窗口的后沿表示已经发送且收到确认的数据,前沿部分表示暂时无法发送(接收方没有准备临时存放数据的缓存空间),前沿前移表示收到了新的接收窗口的确认
发送缓存用来存放:
(1)准备发送的数据
(2)已发送但是未收到确认的数据
发送窗口一般小于发送缓存
接收缓存用来存放:
(1)按序到达的,但未被应用程序接收的数据
(2)未按序到达的数据
接收窗口一般小于接收缓存
注意
(1)发送窗口是根据接收窗口设置的,但不一定大小相同,可能有时间滞后
(2)对于不按序到达的数据线临时存放在接收窗口,等到缺失的数据到达后,在交付给应用进程
(3)接收方式有累计确认功能,可以在适当的时候选择发送确认
6.TCP流量控制(利用滑动窗口)
发送方发送的发送速率不能太快,要让接收方来得及接收
发送方的发送窗口不能超过接收方给出接收窗口的数据
7.TCP拥塞控制
算法:
(1)慢开始:由小到大逐渐增大拥塞窗口(发送窗口)的数值,增大方式采用窗口乘2的方式增加
(2)拥塞避免:每经过一个RTT,拥塞窗口加1
(3)快重传:让发送方尽早知道发生了个别报文段的丢失,收到了时序片段任然重复传回失序片段前的最后一个确认字段,当重复三次后,立刻重传最后一个有序TCP报文段后的TCP报文段
(4)快恢复:当发送发知道丢失了个别报文段,不重新慢开始,而是将ssthresh设置为当前窗口的一半并且将cwnd == ssthresh开始拥塞避免算法(乘法减小,将cwnd除以2)
一开始窗口采用慢开始增大,当到达慢开始门限 ssthresh时,到达ssthresh时,采用拥塞避免算法增大拥塞窗口,当发生拥塞时,重新开始慢开始算法,并将 ssthresh设置为当前窗口的一半·
TCP连接建立
TCP连接建立的过程叫做握手,握手需要在客户和服务器之间交换三个TCP报文段(三报文握手)
TCP连接释放
TCP连接释放需要交换四个TCP报文段(四报文握手)
多了一个服务器确认数据传输完毕发送给客户的报文
MSL为最长报文段寿命,等待2MSL的时间是保证最后一个ACK报文段能到达服务端和防止丢失的连接请求再一次对服务端提出连接请求