干货:计算机网络知识总结.md 44.9 KB
Newer Older
1
> # 目录结构
2 3
### 1. [计算机概述 ](#一计算机概述)
### 2. [物理层 ](#二物理层)
4 5 6 7
### 3. [数据链路层 ](#三数据链路层 )
### 4. [网络层 ](#四网络层 )
### 5. [运输层 ](#五运输层 )
### 6. [应用层](#六应用层)
S
Snailclimb 已提交
8 9


10
## 一计算机概述
S
Snailclimb 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
### <font color="#003333">(1),基本术语<font>

#### <font  color="#99CC33">  结点 (node):<font>

    网络中的结点可以是计算机,集线器,交换机或路由器等。
#### <font  color="#99CC33">  链路(link  ):

    从一个结点到另一个结点的一段物理线路。中间没有任何其他交点。
#### <font  color="#99CC33"> 主机(host):
    连接在因特网上的计算机.
#### <font  color="#99CC33"> ISP(Internet Service Provider): 
    因特网服务提供者(提供商).
#### <font  color="#99CC33"> IXP(Internet eXchange Point): 
    互联网交换点IXP的主要作用就是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。.
#### <font  color="#99CC33"> RFC(Request For Comments) 
    意思是“请求评议”,包含了关于Internet几乎所有的重要的文字资料。
#### <font  color="#99CC33"> 广域网WAN(Wide Area Network)
    任务是通过长距离运送主机发送的数据
#### <font  color="#99CC33"> 城域网MAN(Metropolitan Area Network)
    用来讲多个局域网进行互连

#### <font  color="#99CC33"> 局域网LAN(Local Area Network)
     学校或企业大多拥有多个互连的局域网
#### <font  color="#99CC33"> 个人区域网PAN(Personal Area Network)
    在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络  
####  <font  color="#99CC33">  端系统(end system):  
    处在因特网边缘的部分即是连接在因特网上的所有的主机.
#### <font  color="#99CC33"> 分组(packet ):
    因特网中传送的数据单元。由首部header和数据段组成。分组又称为包,首部可称为包头。
#### <font  color="#99CC33"> 存储转发(store and forward ): 
    路由器收到一个分组,先存储下来,再检查气首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去。
#### <font  color="#99CC33"> 带宽(bandwidth):
    在计算机网络中,表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。常用来表示网络的通信线路所能传送数据的能力。单位是“比特每秒”,记为b/s。
#### <font  color="#99CC33"> 吞吐量(throughput ): 
    表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络的带宽或网络的额定速率的限制。

### <font color="#003333">(2),重要知识点总结<font>

 <font color="#999999">1,计算机网络(简称网络)把许多计算机连接在一起,而互联网把许多网络连接在一起,是网络的网络。

 <font color="#999999">2,小写字母i开头的internet(互联网)是通用名词,它泛指由多个计算机网络相互连接而成的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。

 <font color="#999999">大写字母I开头的Internet(互联网)是专用名词,它指全球最大的,开放的,由众多网络相互连接而成的特定的互联网,并采用TCP/IP协议作为通信规则,其前身为ARPANET。Internet的推荐译名为因特网,现在一般流行称为互联网。

55
 <font color="#999999">3,路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。分组交换采用存储转发技术,表示把一个报文(要发送的整块数据)分为几个分组后再进行传送。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段。在每个数据端的前面加上一些由必要的控制信息组成的首部后,就构成了一个分组。分组又称为包。分组是在互联网中传送的数据单元,正是由于分组的头部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立的选择传输路径,并正确地交付到分组传输的终点。
S
Snailclimb 已提交
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70

<font color="#999999">4,互联网按工作方式可划分为边缘部分和核心部分。主机在网络的边缘部分,其作用是进行信息处理。由大量网络和连接这些网络的路由西组成边缘部分,其作用是提供连通性和交换。

 <font color="#999999">5,计算机通信是计算机中进程(即运行着的程序)之间的通信。计算机网络采用的通信方式是客户-服务器方式(C/S方式)和对等连接方式(P2P方式)。
 
 <font color="#999999">6,客户和服务器都是指通信中所涉及的应用进程。客户是服务请求方,服务器是服务提供方。
 
<font color="#999999">7,按照作用范围的不同,计算机网络分为广域网WAN,城域网MAN,局域网LAN,个人区域网PAN。

 <font color="#999999">8,计算机网络最常用的性能指标是:速率,带宽,吞吐量,时延(发送时延,处理时延,排队时延),时延带宽积,往返时间和信道利用率。
 
 <font color="#999999">9,网络协议即协议,是为进行网络中的数据交换而建立的规则。计算机网络的各层以及其协议集合,称为网络的体系结构。
 
 <font color="#999999">10,五层体系结构由应用层,运输层,网络层(网际层),数据链路层,物理层组成。运输层最主要的协议是TCP和UDP协议,网络层最重要的协议是IP协议。

71
## 二物理层
S
Snailclimb 已提交
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
### <font color="#003333">(1),基本术语<font>
#### <font  color="#99CC33">数据(data):<font>
    运送消息的实体。
#### <font  color="#99CC33">信号(signal):<font>
    数据的电气的或电磁的表现。或者说信号是适合在传输介质上传输的对象。
#### <font  color="#99CC33">码元( code): <font>
    在使用时间域(或简称为时域)的波形来表示数字信号时,代表不同离散数值的基本波形。
#### <font  color="#99CC33">单工(simplex ):<font>
    只能有一个方向的通信而没有反方向的交互。
#### <font  color="#99CC33">半双工(half duplex ):<font>
    通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
#### <font  color="#99CC33">全双工(full duplex): <font>
    通信的双方可以同时发送和接收信息。
#### <font  color="#99CC33">奈氏准则:<font>
    在任何信道中,码元的传输的效率是有上限的,传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的判决(即识别)成为不可能。
#### <font  color="#99CC33">基带信号(baseband signal):<font>
    来自信源的信号。指没有经过调制的数字信号或模拟信号。
#### <font  color="#99CC33"> 带通(频带)信号(bandpass signal):<font>
    把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道),这里调制过后的信号就是带通信号。
#### <font  color="#99CC33"> 调制(modulation  ):<font>
    对信号源的信息进行处理后加到载波信号上,使其变为适合在信道传输的形式的过程。
#### <font  color="#99CC33">信噪比(signal-to-noise ratio ):<font>
    指信号的平均功率和噪声的平均功率之比,记为S/N。信噪比(dB)=10*log10(S/N)
#### <font  color="#99CC33">信道复用(channel multiplexing ):<font>
    指多个用户共享同一个信道。(并不一定是同时)
#### <font  color="#99CC33">比特率(bit rate ):<font>
    单位时间(每秒)内传送的比特数。
#### <font  color="#99CC33">波特率(baud rate):<font>
    单位时间载波调制状态改变的次数。针对数据信号对载波的调制速率。
#### <font  color="#99CC33">复用(multiplexing):<font>
    共享信道的方法
#### <font  color="#99CC33">ADSL(Asymmetric Digital Subscriber Line    ): <font>
    非对称数字用户线。
#### <font  color="#99CC33">光纤同轴混合网(HFC网):<font>
    在目前覆盖范围很广的有线电视网的基础上开发的一种居民宽带接入网

### <font color="#003333">(2),重要知识点总结<font>

 <font color="#999999">1,物理层的主要任务就是确定与传输媒体接口有关的一些特性,如机械特性,电气特性,功能特性,过程特性。</font>

 <font color="#999999">2,一个数据通信系统可划分为三大部分,即源系统,传输系统,目的系统。源系统包括源点(或源站,信源)和发送器,目的系统包括接收器和终点。</font>

 <font color="#999999">3,通信的目的是传送消息。如话音,文字,图像等都是消息,数据是运送消息的实体。信号则是数据的电器或电磁的表现。</font>

 <font color="#999999">4,根据信号中代表消息的参数的取值方式不同,信号可分为模拟信号(或连续信号)和数字信号(或离散信号)。在使用时间域(简称时域)的波形表示数字信号时,代表不同离散数值的基本波形称为码元。</font>

 <font color="#999999">5,根据双方信息交互的方式,通信可划分为单向通信(或单工通信),双向交替通信(或半双工通信),双向同时通信(全双工通信)。</font>

 <font color="#999999">6,来自信源的信号称为基带信号。信号要在信道上传输就要经过调制。调制有基带调制和带通调制之分。最基本的带通调制方法有调幅,调频和调相。还有更复杂的调制方法,如正交振幅调制。</font>

 <font color="#999999">7,要提高数据在信道上的传递速率,可以使用更好的传输媒体,或使用先进的调制技术。但数据传输速率不可能任意被提高。</font>

 <font color="#999999">8,传输媒体可分为两大类,即导引型传输媒体(双绞线,同轴电缆,光纤)和非导引型传输媒体(无线,红外,大气激光)。</font>

 <font color="#999999">9,为了有效利用光纤资源,在光纤干线和用户之间广泛使用无源光网络PON。无源光网络无需配备电源,其长期运营成本和管理成本都很低。最流行的无源光网络是以太网无源光网络EPON和吉比特无源光网络GPON。</font>

### <font color="#003333">(3),最重要的知识点<font>
#### <font color="#003333">**①,物理层的任务**<font>
 <font color="#999999">透明地传送比特流。也可以将物理层的主要任务描述为确定与传输媒体的接口的一些特性,即:机械特性(接口所用接线器的一些物理属性如形状尺寸),电气特性(接口电缆的各条线上出现的电压的范围),功能特性(某条线上出现的某一电平的电压的意义),过程特性(对于不同功能能的各种可能事件的出现顺序)。</font>

#### 拓展:
 <font color="#999999">物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。现有的计算机网络中的硬件设备和传输媒体的种类非常繁多,而且通信手段也有许多不同的方式。物理层的作用正是尽可能地屏蔽掉这些传输媒体和通信手段的差异,使物理层上面的数据链路层感觉不到这些差异,这样就可以使数据链路层只考虑完成本层的协议和服务,而不必考虑网络的具体传输媒体和通信手段是什么。</font>

#### <font color="#003333">**②,几种常用的信道复用技术**<font>
![这里写图片描述](https://user-gold-cdn.xitu.io/2018/4/1/1627f7a170ec6611?w=1247&h=425&f=png&s=36746)

### <font color="#003333">**③,几种常用的宽带接入技术,主要是ADSL和FTTx**<font>
 <font color="#999999">用户到互联网的宽带接入方法有非对称数字用户线ADSL(用数字技术对现有的模拟电话线进行改造,而不需要重新布线。ASDL的快速版本是甚高速数字用户线VDSL。),光纤同轴混合网HFC(是在目前覆盖范围很广的有线电视网的基础上开发的一种居民宽带接入网)和FTTx(即光纤到······)。</font>

141
## 三数据链路层
S
Snailclimb 已提交
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
### <font color="#003333">(1),基本术语<font>

#### <font  color="#99CC33"> 链路(link):<font>
    一个结点到相邻结点的一段物理链路
#### <font  color="#99CC33"> 数据链路(data link):<font>
    把实现控制数据运输的协议的硬件和软件加到链路上就构成了数据链路
#### <font  color="#99CC33"> 循环冗余检验CRC(Cyclic Redundancy Check):<font>
    为了保证数据传输的可靠性,CRC是数据链路层广泛使用的一种检错技术
#### <font  color="#99CC33">  帧(frame):<font>
    一个数据链路层的传输单元,由一个数据链路层首部和其携带的封包所组成协议数据单元。
#### <font  color="#99CC33"> MTU(Maximum Transfer Uint  ):<font>
    最大传送单元。帧的数据部分的的长度上限。
#### <font  color="#99CC33"> 误码率BER(Bit Error Rate ):<font>
    在一段时间内,传输错误的比特占所传输比特总数的比率。
#### <font  color="#99CC33"> PPP(Point-to-Point Protocol  ):<font>
    点对点协议。即用户计算机和ISP进行通信时所使用的数据链路层协议。以下是PPP帧的示意图:
![PPP](https://user-gold-cdn.xitu.io/2018/4/1/1627f8291c6b032c?w=624&h=359&f=jpeg&s=44271)
#### <font  color="#99CC33"> MAC地址(Media Access Control或者Medium Access Control):<font>
    意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。
    在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。
    因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址  。
    地址是识别某个系统的重要标识符,“名字指出我们所要寻找的资源,地址指出资源所在的地方,路由告诉我们如何到达该处”
#### <font  color="#99CC33"> 网桥(bridge):<font>
     一种用于数据链路层实现中继,连接两个或多个局域网的网络互连设备。
#### <font  color="#99CC33"> 交换机(switch ):<font>
    广义的来说,交换机指的是一种通信系统中完成信息交换的设备。这里工作在数据链路层的交换机指的是交换式集线器,其实质是一个多接口的网桥
   

### <font color="#003333">(2),重要知识点总结<font>

<font color="#999999">1,链路是从一个结点到相邻节点的一段物理链路,数据链路则在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)</font>

<font color="#999999">2,数据链路层使用的主要是**点对点信道****广播信道**两种。</font>

<font color="#999999">3,数据链路层传输的协议数据单元是帧。数据链路层的三个基本问题是:**封装成帧****透明传输****差错检测**</font>

<font color="#999999">4,**循环冗余检验CRC**是一种检错方法,而帧检验序列FCS是添加在数据后面的冗余码</font>

<font color="#999999">5,**点对点协议PPP**是数据链路层使用最多的一种协议,它的特点是:简单,只检测差错而不去纠正差错,不使用序号,也不进行流量控制,可同时支持多种网络层协议</font>

<font color="#999999"> 6,PPPoE是为宽带上网的主机使用的链路层协议</font>

<font color="#999999">7,局域网的优点是:具有广播功能,从一个站点可方便地访问全网;便于系统的扩展和逐渐演变;提高了系统的可靠性,可用性和生存性。</font>

<font color="#999999">8,共向媒体通信资源的方法有二:一是静态划分信道(各种复用技术),而是动态媒体接入控制,又称为多点接入(随即接入或受控接入)</font>

<font color="#999999">9,计算机与外接局域网通信需要通过通信适配器(或网络适配器),它又称为网络接口卡或网卡。**计算器的硬件地址就在适配器的ROM中**</font>

<font color="#999999">10,以太网采用的无连接的工作方式,对发送的数据帧不进行编号,也不要求对方发回确认。目的站收到有差错帧就把它丢掉,其他什么也不做</font>

<font color="#999999">11,以太网采用的协议是具有冲突检测的**载波监听多点接入CSMA/CD**。协议的特点是:**发送前先监听,边发送边监听,一旦发现总线上出现了碰撞,就立即停止发送。然后按照退避算法等待一段随机时间后再次发送。** 因此,每一个站点在自己发送数据之后的一小段时间内,存在这遭遇碰撞的可能性。以太网上的各站点平等的争用以太网信道</font>

<font color="#999999">12,以太网的适配器具有过滤功能,它只接收单播帧,广播帧和多播帧。</font>

<font color="#999999">13,使用集线器可以在物理层扩展以太网(扩展后的以太网任然是一个网络)</font>
### <font color="#003333">(3),最重要的知识点<font>
#### ① <font color="#999999">数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点<font>
#### ② <font color="#999999">数据链路层的三个基本问题:**封装成帧**,**透明传输**,**差错检测**<font>
#### ③ <font color="#999999">以太网的MAC层硬件地址<font>
#### ④ <font color="#999999">适配器,转发器,集线器,网桥,以太网交换机的作用以及适用场合<font>

203
## <font color="#003333" id="4">四网络层<font>
S
Snailclimb 已提交
204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250
### <font color="#003333">(1),基本术语<font>

#### <font  color="#99CC33">虚电路(Virtual Circuit):<font>
    在两个终端设备的逻辑或物理端口之间,通过建立的双向的透明传输通道。虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
#### <font  color="#99CC33">IP(Internet Protocol ):<font>
    网际协议 IP 是 TCP/IP体系中两个最主要的协议之一,是TCP/IP体系结构网际层的核心。配套的有ARP,RARP,ICMP,IGMP。
 ![这里写图片描述](https://user-gold-cdn.xitu.io/2018/4/1/1627f92f98436286?w=453&h=331&f=jpeg&s=27535)
#### <font  color="#99CC33">ARP(Address Resolution Protocol):<font>
    地址解析协议
#### <font  color="#99CC33">ICMP(Internet Control Message Protocol ):<font>
    网际控制报文协议  (ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。)
#### <font  color="#99CC33">子网掩码(subnet mask ):<font>
    它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。
#### <font  color="#99CC33"> CIDR( Classless Inter-Domain Routing ):<font>
    无分类域间路由选择  (特点是消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,并使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号)
#### <font  color="#99CC33">默认路由(default route):<font>
    当在路由表中查不到能到达目的地址的路由时,路由器选择的路由。默认路由还可以减小路由表所占用的空间和搜索路由表所用的时间。
#### <font  color="#99CC33">路由选择算法(Virtual Circuit):<font>
    路由选择协议的核心部分。因特网采用自适应的,分层次的路由选择协议。

### <font color="#003333">(2),重要知识点总结<font>
<font color="#999999">1,TCP/IP协议中的网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务。网络层不提供服务质量的承诺,不保证分组交付的时限所传送的分组可能出错,丢失,重复和失序。进程之间通信的可靠性由运输层负责</font>

<font color="#999999">2,在互联网的交付有两种,一是在本网络直接交付不用经过路由器,另一种是和其他网络的间接交付,至少经过一个路由器,但最后一次一定是直接交付</font>

<font color="#999999">3,分类的IP地址由网络号字段(指明网络)和主机号字段(指明主机)组成。网络号字段最前面的类别指明IP地址的类别。IP地址市一中分等级的地址结构。IP地址管理机构分配IP地址时只分配网络号,主机号由得到该网络号的单位自行分配。路由器根据目的主机所连接的网络号来转发分组。一个路由器至少连接到两个网络,所以一个路由器至少应当有两个不同的IP地址</font>

<font color="#999999">4,IP数据报分为首部和数据两部分。首部的前一部分是固定长度,共20字节,是所有IP数据包必须具有的(源地址,目的地址,总长度等重要地段都固定在首部)。一些长度可变的可选字段固定在首部的后面。IP首部中的生存时间给出了IP数据报在互联网中所能经过的最大路由器数。可防止IP数据报在互联网中无限制的兜圈子。</font>

<font color="#999999">5,地址解析协议ARP把IP地址解析为硬件地址。ARP的高速缓存可以大大减少网络上的通信量。因为这样可以使主机下次再与同样地址的主机通信时,可以直接从高速缓存中找到所需要的硬件地址而不需要再去广播方式发送ARP请求分组</font>

<font color="#999999">6,无分类域间路由选择CIDR是解决目前IP地址紧缺的一个好办法。CIDR记法把IP地址后面加上斜线“/”,然后写上前缀所所占的位数。前缀(或网络前缀用来指明网络),前缀后面的部分是后缀,用来指明主机。CIDR把前缀都相同的连续的IP地址组成一个“CIDR地址块”,IP地址分配都以CIDR地址块为单位。</font>

<font color="#999999">7, 网际控制报文协议是IP层的协议.ICMP报文作为IP数据报的数据,加上首部后组成IP数据报发送出去。使用ICMP数据报并不是为了实现可靠传输。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文的种类有两种   ICMP差错报告报文和ICMP询问报文。</font>

<font color="#999999">8,要解决IP地址耗尽的问题,最根本的办法是采用具有更大地址弓箭的新版本IP协议-IPv6。IPv6所带来的变化有①更大的地址空间(采用128位地址)②灵活的首部格式③改进的选项④支持即插即用⑤支持资源的预分配⑥IPv6的首部改为8字节对齐。另外IP数据报的目的地址可以是以下三种基本类型地址之一:单播,多播和任播</font>

<font color="#999999">9,虚拟专用网络VPN利用公用的互联网作为本机构专用网之间的通信载体。VPN内使用互联网的专用地址。一个VPN至少要有一个路由器具有合法的全球IP地址,这样才能和本系统的另一个VPN通过互联网进行通信。所有通过互联网传送的数据都需要加密</font>

<font color="#999999">10, MPLS的特点是:①支持面向连接的服务质量②支持流量工程,平衡网络负载③有效的支持虚拟专用网VPN。MPLS在入口节点给每一个IP数据报打上固定长度的“标记”,然后根据标记在第二层(链路层)用硬件进行转发(在标记交换路由器中进行标记交换),因而转发速率大大加快。</font>

### <font color="#003333">(3),最重要知识点<font>
#### ① <font color="#999999">虚拟互联网络的概念
#### ② <font color="#999999">IP地址和物理地址的关系
#### ③ <font color="#999999"> 传统的分类的IP地址(包括子网掩码)和误分类域间路由选择CIDR
#### ④ <font color="#999999">  路由选择协议的工作原理

251
## <font color="#003333" id="5">五运输层<font>
S
Snailclimb 已提交
252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282

### <font color="#003333">(1),基本术语<font>

#### <font  color="#99CC33">进程(process):<font>
    指计算机中正在运行的程序实体
#### <font  color="#99CC33">应用进程互相通信:<font>
    一台主机的进程和另一台主机中的一个进程交换数据的过程(另外注意通信真正的端点不是主机而是主机中的进程,也就是说端到端的通信是应用进程之间的通信)
#### <font  color="#99CC33">传输层的复用与分用:<font>
    复用指发送方不同的进程都可以通过统一个运输层协议传送数据。分用指接收方的运输层在剥去报文的首部后能把这些数据正确的交付到目的应用进程。 
#### <font  color="#99CC33">TCP(Transmission Control Protocol):<font>
    传输控制协议
#### <font  color="#99CC33">UDP(User Datagram Protocol):<font>
    用户数据报协议
#### <font  color="#99CC33">端口(port)(link):<font>
    端口的目的是为了确认对方机器是那个进程在于自己进行交互,比如MSN和QQ的端口不同,如果没有端口就可能出现QQ进程和MSN交互错误。端口又称协议端口号。 
#### <font  color="#99CC33">停止等待协议(link):<font>
    指发送方每发送完一个分组就停止发送,等待对方确认,在收到确认之后在发送下一个分组。
#### <font  color="#99CC33">流量控制(link):<font>
    就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
#### <font  color="#99CC33">拥塞控制(link):<font>
    防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。


### <font color="#003333">(2),重要知识点总结<font>

<font color="#999999">1,运输层提供应用进程之间的逻辑通信,也就是说,运输层之间的通信并不是真正在两个运输层之间直接传输数据。运输层向应用层屏蔽了下面网络的细节(如网络拓补,所采用的路由选择协议等),它使应用进程之间看起来好像两个运输层实体之间有一条端到端的逻辑通信信道。

2,网络层为主机提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。

3,运输层的两个重要协议是用户数据报协议UDP和传输控制协议TCP。按照OSI的术语,两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元TPDU(Transport Protocol Data Unit)。但在TCP/IP体系中,则根据所使用的协议是TCP或UDP,分别称之为TCP报文段或UDP用户数据报。

D
dongzl 已提交
283
4,UDP在传送数据之前不需要先建立连接,远地主机在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP确是一种最有效的工作方式。 TCP提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的,面向连接的传输服务,这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。
S
Snailclimb 已提交
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328

5,硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层各种协议进程与运输实体进行层间交互的一种地址。UDP和TCP的首部格式中都有源端口和目的端口这两个重要字段。当运输层收到IP层交上来的运输层报文时,就能够 根据其首部中的目的端口号把数据交付应用层的目的应用层。(两个进程之间进行通信不光要知道对方IP地址而且要知道对方的端口号(为了找到对方计算机中的应用进程))

6,运输层用一个16位端口号标志一个端口。端口号只有本地意义,它只是为了标志计算机应用层中的各个进程在和运输层交互时的层间接口。在互联网的不同计算机中,相同的端口号是没有关联的。协议端口号简称端口。虽然通信的终点是应用进程,但只要把所发送的报文交到目的主机的某个合适端口,剩下的工作(最后交付目的进程)就由TCP和UDP来完成。

7,运输层的端口号分为服务器端使用的端口号(0~1023指派给熟知端口,1024~49151是登记端口号)和客户端暂时使用的端口号(49152~65535)

8,UDP的主要特点是①无连接②尽最大努力交付③面向报文④无拥塞控制⑤支持一对一,一对多,多对一和多对多的交互通信⑥首部开销小(只有四个字段:源端口,目的端口,长度和检验和)

9,TCP的主要特点是①面向连接②每一条TCP连接只能是一对一的③提供可靠交付④提供全双工通信⑤面向字节流

10,TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点。这样的端点就叫做套接字(socket)或插口。套接字用(IP地址:端口号)来表示。每一条TCP连接唯一被通信两端的两个端点所确定。

 11,停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
 
12,为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用流水线传输。流水线传输就是发送方可连续发送多个分组,不必每发完一个分组就停下来等待对方确认。这样可使信道上一直有数据不间断的在传送。这种传输方式可以明显提高信道利用率。

13,停止等待协议中超时重传是指只要超过一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送过的分组丢失了)。因此每发送完一个分组需要设置一个超时计时器,其重转时间应比数据在分组传输的平均往返时间更长一些。这种自动重传方式常称为自动重传请求ARQ。另外在停止等待协议中若收到重复分组,就丢弃该分组,但同时还要发送确认。连续ARQ协议可提高信道利用率。发送维持一个发送窗口,凡位于发送窗口内的分组可连续发送出去,而不需要等待对方确认。接收方一般采用累积确认,对按序到达的最后一个分组发送确认,表明到这个分组位置的所有分组都已经正确收到了。

14,TCP报文段的前20个字节是固定的,后面有4n字节是根据需要增加的选项。因此,TCP首部的最小长度是20字节。

15,TCP使用滑动窗口机制。发送窗口里面的序号表示允许发送的序号。发送窗口后沿的后面部分表示已发送且已收到确认,而发送窗口前沿的前面部分表示不晕与发送。发送窗口后沿的变化情况有两种可能,即不动(没有收到新的确认)和前移(收到了新的确认)。发送窗口的前沿通常是不断向前移动的。一般来说,我们总是希望数据传输更快一些。但如果发送方把数据发送的过快,接收方就可能来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。

16,在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫拥塞。拥塞控制就是为了防止过多的数据注入到网络中,这样就可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是点对点通信量的控制,是个端到端的问题。流量控制所要做到的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

17,为了进行拥塞控制,TCP发送方要维持一个拥塞窗口cwnd的状态变量。拥塞控制窗口的大小取决于网络的拥塞程度,并且动态变化。发送方让自己的发送窗口取为拥塞窗口和接收方的接受窗口中较小的一个。

18,TCP的拥塞控制采用了四种算法,即慢开始,拥塞避免,快重传和快恢复。在网络层也可以使路由器采用适当的分组丢弃策略(如主动队列管理AQM),以减少网络拥塞的发生。

19,运输连接的三个阶段,即:连接建立,数据传送和连接释放。

20,主动发起TCP连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫做服务器。TCP连接采用三报文握手机制。服务器要确认用户的连接请求,然后客户要对服务器的确认进行确认。

21,TCP的连接释放采用四报文握手机制。任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送时,则发送连接释放通知,对方确认后就完全关闭了TCP连接
### <font color="#003333">(3),最重要的知识点<font>
#### ① <font color="#999999">端口和套接字的意义<font>

#### ② <font color="#999999">无连接UDP的特点<font>

#### ③ <font color="#999999">面向连接TCP的特点<font>

#### ④ <font color="#999999">在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议<font>

#### ① <font color="#999999">TCP的滑动窗口,流量控制,拥塞控制和连接管理<font>

329
## <font color="#003333" id="6">六应用层<font>
S
Snailclimb 已提交
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421
### <font color="#003333">(1),基本术语<font>
#### <font  color="#99CC33">  域名系统(DNS):<font>
    DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
    通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
#### <font  color="#99CC33"> 文件传输协议(FTP):<font>
     FTP 是File TransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。
     基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。
     "下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
     
#### <font  color="#99CC33"> 简单文件传输协议(TFTP):<font>
    TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。

#### <font  color="#99CC33"> 远程终端协议(TELENET):<font>
    Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。
    在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。
    可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。


#### <font  color="#99CC33"> 万维网(WWW):<font>
    WWW是环球信息网的缩写,(亦作“Web”、“WWW”、“'W3'”,英文全称为“World Wide Web”),中文名字为“万维网”,"环球网"等,常简称为Web。分为Web客户端和Web服务器程序。
    WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。是一个由许多互相链接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全局“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源。
    万维网联盟(英语:World Wide Web Consortium,简称W3C),又称W3C理事会。1994年10月在麻省理工学院(MIT)计算机科学实验室成立。万维网联盟的创建者是万维网的发明者蒂姆·伯纳斯-李。
    万维网并不等同互联网,万维网只是互联网所能提供的服务其中之一,是靠着互联网运行的一项服务。
#### <font  color="#99CC33"> 万维网的大致工作工程:<font>
![万维网的大致工作工程](https://user-gold-cdn.xitu.io/2018/4/1/1627ff96a96087af?w=839&h=610&f=jpeg&s=86703)

#### <font  color="#99CC33"> 统一资源定位符(URL):<font>
    统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。 

#### <font  color="#99CC33"> 超文本传输协议(HTTP):<font>
    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
    设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。

#### <font  color="#99CC33"> 代理服务器(Proxy Server):<font>
     代理服务器(Proxy Server)是一种网络实体,它又称为万维网高速缓存。
     代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的的请求相同,就返回暂存的响应,而不需要按URL的地址再次去互联网访问该资源。
     代理服务器可在客户端或服务器工作,也可以在中间系统工作。 
      
#### <font  color="#99CC33"> http请求头:<font>
    http请求头,HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。
    - Accept:浏览器可接受的MIME类型。
    - Accept-Charset:浏览器可接受的字符集。
    - Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。
    - Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
    - Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。
    - Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。
    - Content-Length:表示请求消息正文的长度。
    - Cookie:这是最重要的请求头信息之一
    - From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。
    - Host:初始URL中的主机和端口。
    - If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答。
    - Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。
    - Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。
    - User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用。
#### <font  color="#99CC33">简单邮件传输协议(SMTP):<font>
     SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
     SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。
     通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。

#### <font  color="#99CC33">搜索引擎:<font>
     搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
     搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。
#### <font  color="#99CC33">全文索引:<font>
     全文索引技术是目前搜索引擎的关键技术。
    试想在1M大小的文件中搜索一个词,可能需要几秒,在100M的文件中可能需要几十秒,如果在更大的文件中搜索那么就需要更大的系统开销,这样的开销是不现实的。
    所以在这样的矛盾下出现了全文索引技术,有时候有人叫倒排文档技术。
#### <font  color="#99CC33">目录索引:<font>
    目录索引( search index/directory),顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。


#### <font  color="#99CC33">垂直搜索引擎:<font>
    垂直搜索引擎是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。
    垂直搜索是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。
    其特点就是“专、精、深”,且具有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。

### <font color="#003333">(2),重要知识点总结<font>
<font color="#999999">1,文件传输协议(FTP)使用TCP可靠的运输服务。FTP使用客户服务器方式。一个FTP服务器进程可以同时为多个用户提供服务。在进进行文件传输时,FTP的客户和服务器之间要先建立两个并行的TCP连接:控制连接和数据连接。实际用于传输文件的是数据连接。

<font color="#999999">2,万维网客户程序与服务器之间进行交互使用的协议时超文本传输协议HTTP。HTTP使用TCP连接进行可靠传输。但HTTP本身是无连接、无状态的。HTTP/1.1协议使用了持续连接(分为非流水线方式和流水线方式)

<font color="#999999">3,电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器读取,相当于电子邮箱。

<font color="#999999">4,一个电子邮件系统有三个重要组成构件:用户代理、邮件服务器、邮件协议(包括邮件发送协议,如SMTP,和邮件读取协议,如POP3和IMAP)。用户代理和邮件服务器都要运行这些协议。



### <font color="#003333">(3),最重要知识点总结<font>

#### ① <font color="#999999">域名系统-从域名解析出IP地址<font>
#### ② <font color="#999999">访问一个网站大致的过程<font>
#### ③ <font color="#999999">系统调用和应用编程接口概念<font>