1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

更新完善计算网络知识

This commit is contained in:
Snailclimb 2018-07-29 16:59:54 +08:00
parent abc5fe2f91
commit 6f40aebc60
3 changed files with 421 additions and 0 deletions

View File

@ -0,0 +1,421 @@
**目录:**
<a href="#1" target="_self">一,计算机概述</a>
<a href="#2" target="_self">二,物理层</a>
<a href="#3" target="_self">三,数据链路层</a>
<a href="#4" target="_self">四,网络层</a>
<a href="#5" target="_self">五,运输层</a>
<a href="#6" target="_self">六,应用层</a>
## <font color="#003333" id="1">**一,计算机概述**<font>
### <font color="#003333">1基本术语<font>
#### <font color="#99CC33"> 结点 node<font>
网络中的结点可以是计算机,集线器,交换机或路由器等。
#### <font color="#99CC33"> 链路link
从一个结点到另一个结点的一段物理线路。中间没有任何其他交点。
#### <font color="#99CC33"> 主机host
连接在因特网上的计算机.
#### <font color="#99CC33"> ISPInternet Service Provider
因特网服务提供者(提供商).
#### <font color="#99CC33"> IXPInternet eXchange Point
互联网交换点IXP的主要作用就是允许两个网络直接相连并交换分组而不需要再通过第三个网络来转发分组。.
#### <font color="#99CC33"> RFC(Request For Comments)
意思是“请求评议”包含了关于Internet几乎所有的重要的文字资料。
#### <font color="#99CC33"> 广域网WANWide Area Network
任务是通过长距离运送主机发送的数据
#### <font color="#99CC33"> 城域网MANMetropolitan Area Network
用来讲多个局域网进行互连
#### <font color="#99CC33"> 局域网LANLocal Area Network
学校或企业大多拥有多个互连的局域网
#### <font color="#99CC33"> 个人区域网PANPersonal 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的推荐译名为因特网现在一般流行称为互联网。
<font color="#999999">3路由器是实现分组交换的关键构件其任务是转发受到的分组这是网络核心部分最重要的功能。分组交换采用存储转发技术表示把一个报文要发送的整块数据分为几个分组后在进行传送。在发送报文之前先把较长的报文划分成为一个个更小的等长数据段。在每个数据端的前面加上一些由必要的控制信息组成的首部后就构成了一个分组。分组有称为包。分组是在互联网中传送的数据单元正式由于分组的头部包含了诸如目的地址和源地址等重要控制信息每一个分组才能在互联网中独立的选择传输路径并正确地交付到分组传输的终点。
<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协议。
## <font color="#003333" id="2">二,物理层<font>
### <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*log10S/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">ADSLAsymmetric 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>
## <font color="#003333" id="3">三,数据链路层<font>
### <font color="#003333">1基本术语<font>
#### <font color="#99CC33"> 链路link<font>
一个结点到相邻结点的一段物理链路
#### <font color="#99CC33"> 数据链路data link<font>
把实现控制数据运输的协议的硬件和软件加到链路上就构成了数据链路
#### <font color="#99CC33"> 循环冗余检验CRCCyclic Redundancy Check<font>
为了保证数据传输的可靠性CRC是数据链路层广泛使用的一种检错技术
#### <font color="#99CC33">frame<font>
一个数据链路层的传输单元,由一个数据链路层首部和其携带的封包所组成协议数据单元。
#### <font color="#99CC33"> MTUMaximum Transfer Uint <font>
最大传送单元。帧的数据部分的的长度上限。
#### <font color="#99CC33"> 误码率BERBit Error Rate <font>
在一段时间内,传输错误的比特占所传输比特总数的比率。
#### <font color="#99CC33"> PPPPoint-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"> 6PPPoE是为宽带上网的主机使用的链路层协议</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>
## <font color="#003333" id="4">四,网络层<font>
### <font color="#003333">1基本术语<font>
#### <font color="#99CC33">虚电路Virtual Circuit<font>
在两个终端设备的逻辑或物理端口之间,通过建立的双向的透明传输通道。虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
#### <font color="#99CC33">IPInternet Protocol <font>
网际协议 IP 是 TCP/IP体系中两个最主要的协议之一是TCP/IP体系结构网际层的核心。配套的有ARPRARPICMPIGMP。
![这里写图片描述](https://user-gold-cdn.xitu.io/2018/4/1/1627f92f98436286?w=453&h=331&f=jpeg&s=27535)
#### <font color="#99CC33">ARPAddress Resolution Protocol<font>
地址解析协议
#### <font color="#99CC33">ICMPInternet 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">1TCP/IP协议中的网络层向上只提供简单灵活的无连接的尽最大努力交付的数据报服务。网络层不提供服务质量的承诺不保证分组交付的时限所传送的分组可能出错丢失重复和失序。进程之间通信的可靠性由运输层负责</font>
<font color="#999999">2在互联网的交付有两种一是在本网络直接交付不用经过路由器另一种是和其他网络的间接交付至少经过一个路由器但最后一次一定是直接交付</font>
<font color="#999999">3分类的IP地址由网络号字段指明网络和主机号字段指明主机组成。网络号字段最前面的类别指明IP地址的类别。IP地址市一中分等级的地址结构。IP地址管理机构分配IP地址时只分配网络号主机号由得到该网络号的单位自行分配。路由器根据目的主机所连接的网络号来转发分组。一个路由器至少连接到两个网络所以一个路由器至少应当有两个不同的IP地址</font>
<font color="#999999">4IP数据报分为首部和数据两部分。首部的前一部分是固定长度共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"> 路由选择协议的工作原理
## <font color="#003333" id="5">五,运输层<font>
### <font color="#003333">1基本术语<font>
#### <font color="#99CC33">进程process<font>
指计算机中正在运行的程序实体
#### <font color="#99CC33">应用进程互相通信:<font>
一台主机的进程和另一台主机中的一个进程交换数据的过程(另外注意通信真正的端点不是主机而是主机中的进程,也就是说端到端的通信是应用进程之间的通信)
#### <font color="#99CC33">传输层的复用与分用:<font>
复用指发送方不同的进程都可以通过统一个运输层协议传送数据。分用指接收方的运输层在剥去报文的首部后能把这些数据正确的交付到目的应用进程。
#### <font color="#99CC33">TCPTransmission Control Protocol<font>
传输控制协议
#### <font color="#99CC33">UDPUser Datagram Protocol<font>
用户数据报协议
#### <font color="#99CC33">端口portlink<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的术语两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元TPDUTransport Protocol Data Unit。但在TCP/IP体系中则根据所使用的协议是TCP或UDP分别称之为TCP报文段或UDP用户数据报。
4UDP在传送数据之前不需要先建立连接远地主机在收到UDP报文后不需要给出任何确认。虽然UDP不提供可靠交付但在某些情况下UDP确是一种最有效的工作方式。 TCP提供面向连接的服务。在传送数据之前必须先建立连接数据传送结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的面向连接的运输服务这一难以避免增加了许多开销如确认流量控制计时器以及连接管理等。这不仅使协议数据单元的首部增大很多还要占用许多处理机资源。
5硬件端口是不同硬件设备进行交互的接口而软件端口是应用层各种协议进程与运输实体进行层间交互的一种地址。UDP和TCP的首部格式中都有源端口和目的端口这两个重要字段。当运输层收到IP层交上来的运输层报文时就能够 根据其首部中的目的端口号把数据交付应用层的目的应用层。两个进程之间进行通信不光要知道对方IP地址而且要知道对方的端口号(为了找到对方计算机中的应用进程)
6运输层用一个16位端口号标志一个端口。端口号只有本地意义它只是为了标志计算机应用层中的各个进程在和运输层交互时的层间接口。在互联网的不同计算机中相同的端口号是没有关联的。协议端口号简称端口。虽然通信的终点是应用进程但只要把所发送的报文交到目的主机的某个合适端口剩下的工作最后交付目的进程就由TCP和UDP来完成。
7运输层的端口号分为服务器端使用的端口号0~1023指派给熟知端口1024~49151是登记端口号和客户端暂时使用的端口号49152~65535
8UDP的主要特点是①无连接②尽最大努力交付③面向报文④无拥塞控制⑤支持一对一一对多多对一和多对多的交互通信⑥首部开销小只有四个字段源端口目的端口长度和检验和
9TCP的主要特点是①面向连接②每一条TCP连接只能是一对一的③提供可靠交付④提供全双工通信⑤面向字节流
10TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点。这样的端点就叫做套接字socket或插口。套接字用IP地址端口号来表示。每一条TCP连接唯一被通信两端的两个端点所确定。
11停止等待协议是为了实现可靠传输的它的基本原理就是每发完一个分组就停止发送等待对方确认。在收到确认后再发下一个分组。
12为了提高传输效率发送方可以不使用低效率的停止等待协议而是采用流水线传输。流水线传输就是发送方可连续发送多个分组不必每发完一个分组就停下来等待对方确认。这样可使信道上一直有数据不间断的在传送。这种传输方式可以明显提高信道利用率。
13停止等待协议中超时重传是指只要超过一段时间仍然没有收到确认就重传前面发送过的分组认为刚才发送过的分组丢失了。因此每发送完一个分组需要设置一个超时计时器其重转时间应比数据在分组传输的平均往返时间更长一些。这种自动重传方式常称为自动重传请求ARQ。另外在停止等待协议中若收到重复分组就丢弃该分组但同时还要发送确认。连续ARQ协议可提高信道利用率。发送维持一个发送窗口凡位于发送窗口内的分组可连续发送出去而不需要等待对方确认。接收方一般采用累积确认对按序到达的最后一个分组发送确认表明到这个分组位置的所有分组都已经正确收到了。
14TCP报文段的前20个字节是固定的后面有4n字节是根据需要增加的选项。因此TCP首部的最小长度是20字节。
15TCP使用滑动窗口机制。发送窗口里面的序号表示允许发送的序号。发送窗口后沿的后面部分表示已发送且已收到确认而发送窗口前沿的前面部分表示不晕与发送。发送窗口后沿的变化情况有两种可能即不动没有收到新的确认和前移收到了新的确认。发送窗口的前沿通常是不断向前移动的。一般来说我们总是希望数据传输更快一些。但如果发送方把数据发送的过快接收方就可能来不及接收这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快要让接收方来得及接收。
16在某段时间若对网络中某一资源的需求超过了该资源所能提供的可用部分网络的性能就要变坏。这种情况就叫拥塞。拥塞控制就是为了防止过多的数据注入到网络中这样就可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程涉及到所有的主机所有的路由器以及与降低网络传输性能有关的所有因素。相反流量控制往往是点对点通信量的控制是个端到端的问题。流量控制所要做到的就是抑制发送端发送数据的速率以便使接收端来得及接收。
17为了进行拥塞控制TCP发送方要维持一个拥塞窗口cwnd的状态变量。拥塞控制窗口的大小取决于网络的拥塞程度并且动态变化。发送方让自己的发送窗口取为拥塞窗口和接收方的接受窗口中较小的一个。
18TCP的拥塞控制采用了四种算法即慢开始拥塞避免快重传和快恢复。在网络层也可以使路由器采用适当的分组丢弃策略如主动队列管理AQM以减少网络拥塞的发生。
19运输连接的三个阶段连接建立数据传送和连接释放。
20主动发起TCP连接建立的应用进程叫做客户而被动等待连接建立的应用进程叫做服务器。TCP连接采用三报文握手机制。服务器要确认用户的连接请求然后客户要对服务器的确认进行确认。
21TCP的连接释放采用四报文握手机制。任何一方都可以在数据传送结束后发出连接释放的通知待对方确认后进入半关闭状态。当另一方也没有数据再发送时则发送连接释放通知对方确认后就完全关闭了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>
## <font color="#003333" id="6">六,应用层<font>
### <font color="#003333">1基本术语<font>
#### <font color="#99CC33"> 域名系统DNS<font>
DNSDomain 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>
TFTPTrivial 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>
超文本传输协议HTTPHyperText 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.1HTTP 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>
SMTPSimple 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>