计算机网络

一、计算机网络体系

计算机网络的概念(什么是计算机网络、你对计算机网络的理解是什么?)

计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,有功能完善的软件实现资源共享和信息传递的系统。
计算机网络是互联的、自治的计算机集合。

链接
计算机网络是以实现资源共享与信息交流为目的的一种连接世界各地的服务器以及用户终端机的网络。

链接
计算机网络是一群地理位置分散的具有自主功能的计算机,通过通信设备及传输媒体连接起来,在通信网络的支持下,实现计算机的资源共享,信息交换,协同工作的系统。

计算机网络的功能

  1. 数据通信
  2. 资源共享
  3. 分布式处理
  4. 提高可靠性
  5. 负载均衡

计算机网络的组成

在这里插入图片描述

计算机网络的分类

在这里插入图片描述

标准化工作

标准的分类

  1. 法定标准:由权威机构制定的正式的、合法的标准(OSI)
  2. 事实标准:某些公司的产品在竞争中占据了主流,时间长了,这些产品中的协议和技术就成了标准(TPC/IP)

RFC要上升因特网正式标准的四个阶段

RFC(Request For Comment):因特网标准的形式

  1. 因特网草案(Internet Draft):这个阶段还不是 RFC 文档
  2. 建议标准(Proposed Standard):从这个阶段开始成为 RFC 文档
  3. 草案标准(Draf Standard):IETF、IAB
  4. 因特网标准(Internet Standard)

相关组织

  • 国际标准化组织ISO:OSI参考模型、HDLC协议
  • 国际电信联盟ITU:制定通信规则
  • 国际电气电子工程师协会IEEE:学术机构、IEEE802系列标准、5G
  • Internet工程任务组IETF:负责因特网相关标准的制定 RFC XXXX

速率相关的性能指标

速率即 速度率 或称 数据传输率比特率

OSI参考模型和TCP/IP模型

在这里插入图片描述
链接
在这里插入图片描述

各层的作用

  1. 应用层
    特定应用程序 提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文
  2. 传输层
    进程 提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。
    运输层包括两种协议:
    1. 传输控制协议(TCP,Transmission Control Protocol) ,提供面向连接、可靠的、基于字节流的数据传输服务,数据单位为报文段;主要提供完整性服务。
    2. 用户数据报协议(UDP,User Datagram Protocol) ,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报;主要提供及时性服务(流量控制、差错控制、服务质量、数据传输管理、端到端)
  3. 网络层
    主机 提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的 报文段 或者 用户数据报 封装成 分组 (流量控制、拥塞控制、差错控制、网际互联)
  4. 数据链路层
    网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是同一链路的主机 提供数据传输服务。数据链路层把网络层传下来的 分组 封装成 (封装成帧、差错控制、流量控制、传输管理)
  5. 物理层
    考虑的是怎样在传输媒体上传输 数据比特流 ,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。

二、物理层

在这里插入图片描述

电路交换,报文交换和分组交换的区别

电路交换与分组交换的区别

  • 电路交换:两结点之间建立一条专用的物理通信路径,传输期间一直独占
  • 报文交换:无须建立专门连接,报文携带有目标地址等信息,采用存储转发方式
  • 分组交换:把报文分割成小的数据块,加上必要的控制信息进行传输
  1. 电路交换
    整个报文的比特流从源点连续的直达终点,像在一个管道中传输。包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网络是传统电话网络。
  2. 报文交换
    将整个报文转发到相邻节点,全部存储下来,查找转发表,转发到下一个节点。是存储-转发类型的网络。
  3. 分组交换
    将报文分组转发到相邻节点,查找转发表,转发到下一个节点。也是存储-转发类型的网络。
    在这里插入图片描述

虚电路和数据报的区别

链接
原文链接
在这里插入图片描述

三、数据链路层

在这里插入图片描述

可靠传输机制有哪些?

数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。
确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。
自动重传请求(Auto Repeat reQuest, ARQ) 通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。传统自动重传请求分为三种,即停止-等待(Stop-and-Wait) ARQ后退N 帧(Go-Back-N) ARQ选择性重传(Selective Repeat)ARQ,后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ 协议。注意,在数据链路层中流量控制机制和可靠传输机制是交织在一起的。

计算机网络中可靠传输的3种机制

链接

  1. 停止-等待协议SW
  2. 回退N帧协议GBN
  3. 选择重传协议SR

介质访问控制

百度百科

简介

介质访问控制(medium access control)简称MAC。 是解决当局域网中共用信道的使用产生竞争时,如何分配信道的使用权问题。
它定义了数据帧怎样在介质上进行传输。在共享同一个带宽的链路中,对连接介质的访问是“先来先服务”的。物理寻址在此处被定义,逻辑拓扑(信号通过物理拓扑的路径)也在此处被定义。线路控制、出错通知(不纠正)、帧的传递顺序和可选择的流量控制也在这一子层实现。

分类

局域网的数据链路层分为逻辑链路层LLC和介质访问控制MAC两个子层。
逻辑链路控制(Logical Link Control或简称LLC)是局域网中数据链路层的上层部分,IEEE 802.2中定义了逻辑链路控制协议。用户的数据链路服务通过LLC子层为网络层提供统一的接口。在LLC子层下面是MAC子层。
MAC(medium access control)属于LLC(Logical Link Control)下的一个子层。局域网中广泛采用的两种介质访问控制方法,分别是:
1、争用型介质访问控制,又称随机型的介质访问控制协议,如CSMA/CD方式。
2、确定型介质访问控制,又称有序的访问控制协议,如Token(令牌)方式。

随机访问介质访问控制

在随机访问协议中,不采用集中控制方式(信道划分介质访问–时分复用)解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突(碰撞,即前面所说的相互干扰),导致所有冲突用户的发送均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。A/这些规则就是随机访问介质访问控制协议,常用的协议有ALOHA 协议、CSMA协议、CSMA/CD 协议和CSMA/CA 协议等,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权。

1、ALOHA协议
ALOHA协议的思想很简单,只要用户有数据要发送,就尽管让他们发送。当然,这样会产生冲突从而造成帧的破坏。但是,由于广播信道具有反馈性,因此发送方可以在发送数据的过程中进行冲突检测,将接收到的数据与缓冲区的数据进行比较,就可以知道数据帧是否遭到破坏。同样的道理,其他用户也是按照此过程工作。如果发送方知道数据帧遭到破坏(即检测到冲突),那么它可以等待一段随机长的时间后重发该帧。

2、CSMA协议(载波侦听多路访问)(Carrier Sense Multiple Access)
非持续式:
经侦听,如果介质空闲,开始发送
如果介质忙,则等待一个随机分布的时间,然后重复步骤1
优点:等待一个随机时间可以减少再次碰撞冲突的可能性
缺点:如果在这个随机时间内介质上没有数据传送,则会发生浪费

1-持续式:
经侦听,如介质空闲,开始发送
如介质忙,持续侦听,一旦空闲立即发送
如果发生冲突,等待一个随机分布的时间再重复步骤1
优点:持续式的延迟时间要少于非持续式
缺点:如果两个以上的站等待发送,一旦介质空闲就一定会发生冲突

p-持续式:
经侦听,如介质空闲,那么以p的概率发送,以(1–p)的概率延迟一个时间单元发送
如介质忙,持续侦听,一旦空闲重复步骤1
如果发送已推迟一个时间单元,再重复步骤1

3、CSMA/CD协议(Collision Detection:碰撞检测)
载波侦听多路访问/碰撞检测(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)
协议是CSMA 协议的改进方案。”载波帧听”就是发送前先侦听,即每个站在发送数据之前先要检测一下总线上是否有其他站点正在发送数据,若有则暂时不发送数据,等待信道变为空闲时再发送。”碰撞检测”就是边发送边侦听,即适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站点是否也在发送数据。工作流程可简单概括为“先听后发,边听边发(区别于CSMA 协议),冲突停发,随机重发”。

  1. 适配器从其父结点获得一个网络层数据报,准备一个以太网帧,并把该帧放到适配器缓冲区中。
  2. 如果适配器侦听到信道空闲,那么它开始传输该帧。如果适配器侦听到信道忙,那么它将等待直至侦听到没有信号能量,然后开始传输该帧。
  3. 在传输过程中,适配器检测来自其他适配器的信号能量。如果这个适配器传输了整个帧,而没有检测到来自其他适配器的信号能量,那么这个适配器完成该帧的传输。否则,适配器就须停止传输它的帧,取而代之传输一个48 比特的拥塞信号。
  4. 在中止(即传输拥塞信号)后,适配器采用截断二进制指数退避算法等待一段随机时间后返回到步骤2) 。

4、CSMA/CA协议(Collision Avoidance:碰撞避免)
CSMA/CD 协议已成功应用千使用有线连接的局域网,但在无线局域网环境下,却不能简单地搬用CSMA/CD 协议,特别是碰撞检测部分。主要有两个原因:

  1. 接收信号的强度往往会远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大,因此若要实现碰撞检测,则硬件上的花费就会过大。
  2. 在无线通信中,并非所有的站点都能够听见对方,即存在“隐蔽站”问题。
    为此, 802.11 标准定义了广泛应用于无线局域网的CSMA/CA 协议,它对CSMA/CD 协议进行了修改,把碰撞检测改为碰撞避免(Collision Avoidance, CA) 。”碰撞避免”并不是指协议可以完全避免碰撞,而是指协议的设计要尽量降低碰撞发生的概率。

CSMA/CA 采用二进制指数退避算法。信道从忙态变为空困时,任何一个站要发送数据帧时,不仅都须等待一个时间间隔,而且还要进入争用窗口,并计算随机退避时间以便再次试图接入信道,因此降低了发生碰撞的概率。

CSMA/CA 还使用预约信道、ACK 帧、RTS/CTS 帧等三种机制来实现碰撞避免:

  1. 预约信道。发送方在发送数据的同时向其他站点通知自己传输数据需要的时间长度,以便让其他站点在这段时间内不发送数据,从而避免碰撞。
  2. ACK 帧。所有站点在正确接收到发给自己的数据帧(除广播帧和组播帧)后,都需要向发送方发回一个ACK 帧,如果接收失败,那么不采取任何行动。发送方在发送完一个数据帧后,在规定的时间内如果未收到ACK 帧,那么认为发送失败,此时进行该数据帧的重发,直到收到ACK 帧或达到规定重发次数为止。
  3. RTS/CTS 帧。可选的碰撞避免机制,主要用于解决无线网中的“隐蔽站”问题。

PPP协议

点到点协议(Point to Point Protocol,PPP) 是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。
设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

PPP具有以下功能:
(1)PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址;
(2)PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等;
(3)PPP具有错误检测能力,但不具备纠错能力,所以ppp是不可靠传输协议;
(4)无重传的机制,网络开销小,速度快。
(5)PPP具有身份验证功能。
(6) PPP可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤(例如SDH),PPP也用于Internet接入。

四、网络层

在这里插入图片描述

路由器的主要功能(路由器工作原理)

路由器主要完成两个功能:

  1. 是路由选择(确定哪一条路径)
  2. 是分组转发(当一个分组到达时所采取的动作)。

前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。

  1. 路由选择。指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。
  2. 分组转发。指路由器根据转发表将用户的IP 数据报从合适的端口转发出去。路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。

动态路由算法

① 距离-向量路由算法(例如RIP算法)
在距离-向量路由算法中,所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含:1.每条路径的目的地(另一结点)。2.路径的代价(也称距离)。在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:

  1. 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由。
  2. 发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离(较小的代价)。此种情况下,就用经过发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由。

② 链路状态路由算法(例如OSPF算法)
链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行下述两项任务。第一,主动测试所有邻接结点的状态。两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络。第二,定期地将链路状态传播给所有其他结点(或称路由结点)距离-向量路由算法与链路状态路由算法的比较:在距离-向量路由算法中,每个结点仅与它的直接邻居交谈,它为它的邻居提供从自已到网络中所有其他结点的最低费用估计。在链路状态路由算法中,每个结点通过广播的方式与所有其他结点交谈,但它仅告诉它们与它直接相连的链路的费用。相较之下,距离~向量路由算法有可能遇到路由环路等问题。
③ 一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP), 也称域内路由选择,具体的协议有RIP 和OSPF 等。


RIP与OSPF

路由信息协议(Routing Information Protocol, RIP) 是内部网关协议IGP) 中最先得到广泛应用的协议。RIP 是一种分布式的基于距离向量的路由选择协议,其最大优点就是简单。
RIP 规定:

  1. 网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录(因此这是一组距离,称为距离向量)。
  2. 距离也称跳数(Hop Count), 规定从一个路由器到直接连接网络的距离(跳数)为1 。而每经过一个路由器,距离(跳数)加1 。
  3. RIP 认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径。
  4. RIP 允许一条路径最多只能包含15 个路由器(即最多允许15 跳)。因此距离等于16 时,它表示网络不可达。可见RIP 只适用于小型互联网。距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。
  5. RIP 默认在任意两个使用RIP 的路由器之间每30 秒广播一次RIP 路由更新信息,以便自动建立并维护路由表(动态维护)。

开放最短路径优先(OSPF) 协议是使用分布式链路状态路由算法的典型代表,也是内部网关协议(IGP) 的一种。OSPF 与RIP 相比有以下4 点主要区别:

  1. OSPF 向本自治系统中的所有路由器发送信息,这里使用的方法是洪泛法。而RIP 仅向自已相邻的几个路由器发送信息。
  2. 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。”链路状态”说明本路由器和哪些路由器相邻及该链路的“度量”(或代价)。而在RIP 中,发送的信息是本路由器所知道的全部信息,即整个路由表。
  3. 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛得快,不会出现RIP" 坏消息传得慢"的问题。而在RIP 中,不管网络拓扑是否发生变化,路由器之间都会定期交换路由表的信息。

除以上区别外, OSPF 还有以下特点:

  1. OSPF 对不同的链路可根据IP 分组的不同服务类型(TOS) 而设置成不同的代价。因此,OSPF 对千不同类型的业务可计算出不同的路由,十分灵活。
  2. 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这称为多路径间的负载平衡。
  3. 所有在OSPF 路由器之间交换的分组都具有鉴别功能,因而保证了仅在可信赖的路由器之间交换链路状态信息。

自治系统之间所使用的路由选择协议称为外部网关协议(EGP), 也称域间路由选择,用在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP 。
边界网关协议(Border Gateway Protocol, BGP) 是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。边界网关协议常用于互联网的网关之间。路由表包含已知路由器的列表、路由器能够达到的地址及到达每个路由器的路径的跳数。内部网关协议主要设法使数据报在一个AS 中尽可能有效地从源站传送到目的站。在一个AS内部不需要考虑其他方面的策略。然而BGP 使用的环境却不同,主要原因如下:

  1. 因特网的规模太大,使得自治系统之间路由选择非常困难。
  2. 对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。
  3. 自治系统之间的路由选择必须考虑有关策略。

边界网关协议(BGP) 只能力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非寻找一条最佳路由。BGP 采用的是路径向量路由选择协议,它与距离向量协议和链路状态协议有很大的区别。BGP 是应用层协议,它是基于TCP 的。
BGP 的工作原理如下:每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的"BGP 发言人“。一个BGP 发言人与其他自治系统中的BGP 发言人要交换路由信息,就要先建立TCP 连接(可见BGP 报文是通过TCP 传送的,也就是说BGP 报文是TCP 报文的数据部分),然后在此连接上交换BGP 报文以建立BGP 会话,再利用BGP 会话交换路由信息。当所有BGP 发言人都相互交换网络可达性的信息后,各BGP 发言人就可找出到达各个自治系统的较好路由。

IP地址和MAC地址

IP 地址是网络层使用的地址,它是分层次等级的。MAC地址是数据链路层使用的地址,它是平面式的。在网络层及网络层之上使用IP 地址,IP 地址放在IP 数据报的首部,而MAC 地址放在MAC帧的首部。通过数据封装,把IP 数据报分组封装为MAC 帧后,数据链路层看不见数据报分组中的IP地址。
由于路由器的隔离, IP 网络中无法通过广播方式依靠MAC 地址来完成跨网络的寻址,因此在IP网络的网络层只使用IP 地址来完成寻址。寻址时,IP每个路由器依据其路由表(依靠静态路由或动态路由协议生成)选择到目标网络(即主机号全为0 的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址),而IP 分组通过多次路由转发到达目标网络后,改为在目标LAN 中通过数据链路层的MAC 地址以广播方式寻址。这样可以提高路由选择的效率。
注意:路由器由于互联多个网络,因此它不仅有多个IP 地址,也有多个硬件地址。

ARP地址解析协议

百度百科
链接

简介

地址解析协议(Address Resolution Protocol,ARP),是根据IP地址获取物理地址(MAC地址)的一个TCP/IP协议。
每台主机都有一个 ARP 高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称ARP表。使用ARP来动态维护此ARP表。

工作原理

主机A欲向本局域网上的某台主机B发送IP数据报时,先在其ARP表中查看有无主机B的IP地址:

  1. 如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC 帧,然后通过局域网将该MAC 帧发往此硬件地址。
  2. 如果没有,就向本网段的所有主机发送 ARP 数据包,当本网络的所有主机收到该 ARP 数据包时,首先检查数据包中的 IP 地址是否是自己的 IP 地址:
    1. 如果不是,则忽略该数据包。
    2. 如果是,则主机B向主机A 发出响应ARP 分组,分组中包含主机B 的IP 与 MAC 地址的映射关系。源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

ICMP网际控制报文协议

为了提高IP 数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet ControlMessage Protocol,ICMP) 来让主机或路由器报告差错和异常情况。
ICMP 报文作为IP 层数据报的数据,加上数据报的首部,组成IP 数据报发送出去。ICMP 是IP 层协议。
ICMP 报文的种类有两种,即ICMP 差错报告报文和ICMP 询问报文。
ICMP 差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共有以下5种类型:

  1. 终点不可达。
    当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
  2. 源点抑制。
    当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
  3. 时间超过。
    当路由器收到生存时间(TTL) 为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
  4. 参数问题。
    当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  5. 改变路由(重定向)。
    路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

五、传输层

在这里插入图片描述

TCP协议

TCP 是在不可靠的IP 层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复问题。TCP 是TCP/IP 体系中非常复杂的一个协议,主要特点如下:

  1. TCP 是面向连接的传输层协议。
  2. 每条TCP 连接只能有两个端点,每条TCP 连接只能是点对点的(一对一)。
  3. TCP 提供可靠的交付服务,保证传送的数据无差错、不丢失、不重复且有序。
  4. TCP 提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据,为此TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。
    发送缓存用来暂时存放以下数据:
    (1) 发送应用程序传送给发送方TCP 准备发送的数据;
    (2) TCP 已发送但尚未收到确认的数据。
    接收缓存用来暂时存放以下数据:
    (1) 按序到达但尚未被接收应用程序收取的数据;
    (2) 不按序到达的数据。

TCP连接的建立

在TCP 连接建立的过程中,要解决以下三个问题:

  1. 要使每一方都能够确知对方的存在。
  2. 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、时间戳选项及服务质量
    等)。
  3. 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。

链接

三次握手——建立连接

四次挥手——释放连接

对上述TCP 连接建立和释放的总结如下:

  1. 连接建立。分为3 步:
    1、SYN = 1, seq = x 。
    2、SYN= 1, ACK= 1, seq= y, ack = x + 1 。
    3、ACK= 1, seq= x + 1, ack = y + l 。
  2. 释放连接。分为4 步:
    1、FIN= 1, seq =u 。
    2、ACK = 1, seq = v, ack = u + 1 。
    3、FIN= 1, ACK= 1, seq= w, ack = u + 1 。
    4、ACK= 1, seq= u + 1, ack = w + 1。

为什么要三次握手、四次挥手?

链接

为什么需要三次握手?

目的:为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。主要防止资源的浪费。

为什么要四次挥手?

为了保证在最后断开的时候,客户端能够发送最后一个ACK报文段能够被服务器接收到。如果客户端在收到服务器给它的断开连接的请求之后,回应完服务器就直接断开连接的话,若服务器没有收到回应就无法进入CLOSE状态,所以客户端要等待两个最长报文段寿命的时间,以便于服务器没有收到请求之后重新发送请求。
防止"已失效的连接请求报文"出现在连接中,在释放连接的过程中会有一些无效的滞留报文,这些报文在经过2MSL的时间内就可以发送到目的地,不会滞留在网络中。这样就可以避免在下一个连接中出现上一个连接的滞留报文了。

UDP协议

  1. UDP 无须建立连接。因此UDP 不会引入建立连接的时延。试想如果DNS 运行在TCP 而非UDP上,那么DNS 的速度会慢很多。HTTP 使用TCP 而非UDP, 是因为对于基于文本数据的Web网页来说可靠性是至关重要的。
  2. 无连接状态。TCP 需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制参数和序号与确认号的参数。而UDP 不维护连接状态,也不跟踪这些参数。因此,某些专用应用服务器使用UDP 时,一般都能支持更多的活动客户机
  3. 分组首部开销小。TCP 有20B 的首部升销,而UDP 仅有8B 的升销。
  4. 应用层能更好地控制要发送的数据和发送时间。UDP 没有拥塞控制,因此网络中的拥塞不会影响主机的发送效率。某些实时应用要求以稳定的速度发送,能容忍一些数据的丢失,但不允许有较大的时延,而UDP 正好满足这些应用的需求。UDP 常用于一次性传输较少数据的网络应用如DNS 、SNMP 等,因为对千这此应用,若采用TCP, 则将为连接创建、维护和拆除带来不小的开销。UDP 也常用于多媒体应用(如IP 电话、实时视频会议、流媒体等),显然,可靠数据传输对这些应用来说并不是最重要的,但TCP的拥塞控制会导致数据出现较大的延迟,这是它们不可容忍的。

UDP 提供尽最大努力的交付,即不保证可靠交付,但这并不意味着应用对数据的要求是不可靠
的,因此所有维护传输可靠性的工作需要用户在应用层来完成。应用实体可以根据应用的需求来
灵活设计自己的可靠性机制。

TCP与UDP的区别

链接
在这里插入图片描述
链接
在这里插入图片描述
链接

我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常, 其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包, 如果数据包是否到达的消息及时反馈回来,那么网络就是通的。

ping命令是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping命令是使用 IP 和网络控制信息协议 (ICMP),因而没有涉及到任何传输协议(UDP/TCP) 和应用程序。它发送icmp回送请求消息给目的主机。

六、应用层

在这里插入图片描述

链接

应用层有哪些协议

HTTP,SMTP,Telnet(远程终端访问),FTP,DNS,SIP(互联网电话)(只有他支持udp和tcp,其他都支持只支持TCP)

常用端口号

HTTP:80
HTTPS:443
TELNET:23
FTP:20/21(控制连接21,数据连接20)
SMTP:25
DNS:53

HTTPS

链接
HTTP 是超文本传输协议,明文传输;HTTPS 使用 SSL 协议对 HTTP 传输数据进行了加密
HTTP 默认 80 端口;HTTPS 默认 443 端口
优点:安全
缺点:费时、SSL 证书收费,加密能力还是有限的,但是比 HTTP 强多了

https 作用:

  1. 帮助客户端对服务器身份进行验证
  2. 让需要传输的数据加密化
  3. 验证传输的数据是否完整

HTTP和HTTPS的区别

链接
http是超文本传输协议,信息是明文传输,数据都是未加密的,安全性较差;https则是具有安全性的ssl加密传输协议。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
http的端口是80,https的端口是443

链接
HTTP 协议以明文方式发送内容,数据都是未加密的,安全性较差。HTTPS 数据传输过程是加密的,安全性较好。
HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80 端口,后者是 443 端口。
HTTPS 协议需要到数字认证机构(Certificate Authority, CA)申请证书,一般需要一定的费用。
HTTP 页面响应比 HTTPS 快,主要因为 HTTP 使用 3 次握手建立连接,客户端和服务器需要握手 3 次,而 HTTPS 除了 TCP 的 3 次握手,还需要经历一个 SSL 协商过程。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值