首页 > 其他分享 >计算机网络第一章--概述

计算机网络第一章--概述

时间:2024-04-08 22:55:18浏览次数:20  
标签:UDP -- 报文 TCP 第一章 计算机网络 ACK Client 连接

第一章概述

1.1计算机网络的主要功能

计算机网络的主要功能有

数据通信。数据通信是计算机网络最基本的功能。

② 资源共享。资源是指网络中所有的硬件、软件和数据资源。

③ 分布式处理。对于一些大型任务,可把它分解成多个小型任务,由网络上的多台计算机协同工作、分布式处理。

④ 综合信息服务。电子邮件、网上交易、视频点播、联机会议等。

计算机网络的分类

按网络的覆盖范围分:局域网、城域网、广域网等;

按拓扑结构分:星形网、总线型网、环形网、树形网、网状网等;

按传播方式分:点对点传输网络、广播式传输网络等。

1.2计算机网络的组成

计算机网络的硬件系统通常由服务器、工作站、传输介质、网卡、路由器、集线器、中继器、调制解调器等组成。

光纤:

又称:光缆具有防电磁干扰、传输稳定可靠、传输带宽高等特点

光纤分为单模光纤和多模光纤两种(所谓就是指以一定的角度进入光纤的一束光线)

一般分为两类:

  • 单模光纤

芯的直径一般为9μm或10μm,使用激光作为光源,并只允许一束光线穿过光纤,定向性强,传递数据质量高,传输距离远,可达100km,通常用于长途干线传输及城域网建设等

  • 多模光纤

芯的直径一般是50μm或62.5μm,使用发光二极管作为光源,允许多束光线同时穿过光纤,定向性差,最大传输距离为2km,一般用于距离相对较近的区域内的网络连接]

双绞线:

由不同颜色的4对8芯线(每根芯线加绝缘层)组成

最大传输距离为100m

双绞线可分为非屏蔽双绞线(UTP)和屏蔽双绞线(STP)

注意:

使用双绞线组网时,双绞线和其他设备连接必须使用RJ-45接头(俗称水晶头)。
RJ-45水晶头中的线序有两种标准。

EIA/TIA 568A标准:绿白-1、绿-2、橙白-3、蓝-4、蓝白-5、橙-6、棕白-7、棕-8。
EIA/TIA 568B标准:橙白-1、橙-2、绿白-3、蓝-4、蓝白-5、绿-6、棕白-7、棕-8。

image-20240408001022355

在双绞线中,直接参与通信的导线是线序为1、2、3、6的四根线,其中1和2负责发送数据;3和6负责接收数据。

对以上两种线缆,针对应用情况不同又分为:

image-20240408001240974
  • 直通线:也称直连线,是指双绞线两端线序都为568A或568B,用于连接不同种的设备。
  • 交叉线:双绞线一端线序为568A,另一端线序为568B,用于连接同种设备。

应用:

image-20240408001504720

1.3计算机网络协议

计算机网络协议(Protocol)一般至少包括三个要素:

  • 语法:规定用户数据与控制信息的结构和格式。
  • 语义:规定需要发出何种控制信息以及完成的动作与做出的响应。
  • 时序:规定对事件实现顺序控制的时间。

开放系统互联的体系结构(Open Systems Interconnection,OSI)

OSI/RM模型分为7层,从下往上分别是物理层数据链路层网络层传输层会话层表示层应用层.

助记:

例如: 小黑买了一台新的台式大头电脑(物理层),他想要上网,就得连接网络. 于是又买了网线喊来了网警(数据链路层)给他安装网线. 等线接好了他发现不能上网.他很生气于是又咬咬牙买了一个网络账号登号拨号上网(网络层),

终于能上网了QAQ ,小黑赶紧下载(传输层)了一个QQ,随后拿出褶皱的纸,上面写着小丽的QQ号码.安装好之后登上QQ进入聊天框 给小丽发送(会话层)了一句: "我爱你,一万年".(表示层) ,不久小丽看到小黑的消息. 回复了一句:"我不喜欢你. 就这样吧." 然后就把小黑删了(应用层)

image-20240408003521043

划分层次的原则是:

  • 网中各结点都有相同的层次。
  • 不同结点的同等层具有相同的功能。
  • 同一结点内相邻层之间通过接口通信。
  • 每一层使用下层提供的服务,并向其上层提供服务。
  • 不同结点的同等层按照协议实现对等层之间的通信。

助记仅提供象形助记,并非知识点,下面是每层的应用:

image-20240408003756067 image-20240408004057459
层 次 数据格式 主 要 功 能 典 型 设 备
应用层 数据报文 为应用程序提供网络服务
表示层 数据报文 数据表示、数据安全、数据压缩
会话层 数据报文 建立、管理和终止会话
传输层 数据报文 提供端到端连接
网络层 数据包 (分组) 确定地址、路径选择(路由) 路由器
数据链路层 数据帧 介质访问(接入) 网桥、交换机、网卡
物理层 比特流 二进制(Bit)数据流传输 光纤、同轴电缆、双绞线、中继器和集线器

1.3.1 数据链路层

  • 主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路改造成对网络层来说无差错的数据链路。

数据链路层分为介质访问控制(MAC)子层和逻辑链路控制(LLC)子层。

  • 在物理层提供比特流传输服务的基础上,传送以为单位的数据。
  • 数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲区溢出及线路阻塞等问题。

1.3.2数据的封装与解封

封装:
image-20240408005015579
解封:
image-20240408005038019

一般而言,由于OSI体系结构具有概念清晰的优点,主要适用于教学研究。

1.3.3 TCP/IP模型

ARPAnet最初开发的网络协议使用在通信可靠性较差的通信子网中,且出现了不少问题,这就导致了新的网络协议TCP/IP的产生。虽然TCP/IP协议不是OSI标准,但它是目前最流行的商业化的网络协议,并被公认为当前的工业标准或“事实上的标准”。

TCP/IP参考模型分为4层: 网络接口层、网络层、传输层和应用层。

image-20240408010548409

关于TCP的三次握手四次挥手:

TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。

三次握手建立连接:

所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总共发送3个报文。

image-20240408011442425

第一次握手
客户端将TCP报文标志位SYN置为1,随机产生一个序号值seq=J,保存在TCP首部的序列号(Sequence Number)字段里,指明客户端打算连接的服务器的端口,并将该数据包发送给服务器端,发送完毕后,客户端进入SYN_SENT状态,等待服务器端确认。

第二次握手
服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将TCP报文标志位SYN和ACK都置为1,ack=J+1,随机产生一个序号值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。

第三次握手
客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

注意:我们上面写的ack和ACK,不是同一个概念:

  • 小写的ack代表的是头部的确认号Acknowledge number, 缩写ack,是对上一个包的序号进行确认的号,ack=seq+1。
  • 大写的ACK,则是我们上面说的TCP首部的标志位,用于标志的TCP包是否对上一个包进行了确认操作,如果确认了,则把ACK标志位设置成1。

助记: 小强买瓜

小强有一块钱(SYN=1)想要去买瓜,瓜农收了小强的一块钱想了想把一块钱退给(SYN=1)了小强,又把剩下的两个瓜一个大瓜(ACK=1)一个小瓜(ack=J+1)给了小强,又从钱包里掏出了K元钱(seq=K)都给了小强,瓜农心里很满足(SYN_RCVD)又帮了一个强子吃上了了瓜.

四次挥手关闭连接:

image-20240408013104437

第一次挥手: Client端发起挥手请求,向Server端发送标志位是FIN报文段,设置序列号seq,此时,Client端进入FIN_WAIT_1状态,这表示Client端没有数据要发送给Server端了。

第二次分手:Server端收到了Client端发送的FIN报文段,向Client端返回一个标志位是ACK的报文段,ack设为seq加1,Client端进入FIN_WAIT_2状态,Server端告诉Client端,我确认并同意你的关闭请求。

第三次分手: Server端向Client端发送标志位是FIN的报文段,请求关闭连接,同时Client端进入LAST_ACK状态。

第四次分手 : Client端收到Server端发送的FIN报文段,向Server端发送标志位是ACK的报文段,然后Client端进入TIME_WAIT状态。Server端收到Client端的ACK报文段以后,就关闭连接。此时,Client端等待2MSL的时间后依然没有收到回复,则证明Server端已正常关闭,那好,Client端也可以关闭连接了。

助记:傻强买瓜

bulabulabula...别偷懒好好记住

1.4 拓扑结构

计算机网络拓扑结构主要是指通信子网的拓扑结构。

星形拓扑。

image-20240408013424662

总线型拓扑。

image-20240408013508294

环形拓扑。

image-20240408013532065

④树形拓扑。

image-20240408013628639

从星形拓扑或总线型拓扑结构演变而来的,形状像一棵倒置的树,顶端是树根,树根以下带分支,每个分支还可再带分支,树形拓扑结构在中小型局域网中应用较多

Q: TCP与UDP的区别

TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP.

image-20240408014110082

TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。TCP是面向面向字节流,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。

TCP 为提供可靠性传输,实行“顺序控制”或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众多功能。

TCP有以下特点:

  • TCP充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在 UDP 中都没有。
  • 此外,TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。
  • 根据 TCP 的这些机制,在 IP 这种无连接的网络上也能够实现高可靠性的通信( 主要通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现)。

UDP 是面向报文的,所谓面向报文,是指面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。

UDP 是不具有可靠性的数据报协议,细微的处理它会交给上层的应用去完成。在 UDP 的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。

UDP有以下特点:

  • UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。

  • 传输途中出现丢包,UDP 也不负责重发。

  • 当包的到达顺序出现乱序时,UDP没有纠正的功能。

  • 并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。

  • 如果需要以上的细节控制,不得不交由采用 UDP 的应用程序去处理。

  • UDP 常用于以下几个方面:

    • 1.包总量较少的通信(DNS、SNMP等);
    • 2.视频、音频等多媒体通信(即时通信);
    • 3.限定于 LAN 等特定网络中的应用通信;
    • 4.广播通信(广播、多播)。
  • 助记: 某丰快递与某通快递的区别:

    某丰快递(TCP)负责将包裹打包好,按顺序摆放好,稳稳当当的送到客户手中.如丢失快递某丰将进行赔偿客户.

    某通快递(UDP)送快递很着急,客户的快递丢了,不负责,送错了不负责,没发出去不负责,号称三不.就管"快速送到"客户手中即可,也不管送对没送对,损坏没损坏....

  • 总结:

  • TCP 和 UDP 的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实现可靠传输的情况;而在一方面,UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。TCP 和 UDP 应该根据应用的目的按需使用。

标签:UDP,--,报文,TCP,第一章,计算机网络,ACK,Client,连接
From: https://www.cnblogs.com/xueyitian/p/18122866

相关文章

  • XML文档节点导航与选择指南
    XPath(XMLPathLanguage)是XSLT标准的主要组成部分。它用于在XML文档中浏览元素和属性,提供了一种强大的定位和选择节点的方式。XPath的基本特点代表XML路径语言:XPath是一种用于在XML文档中导航和选择节点的语言。路径样式语法:XPath使用路径表达式的“路径样式”语法来......
  • playwright-异步模式
    #异步模式importasynciofromplaywright.async_apiimportasync_playwright#导入异步模块asyncdefmain():#封装一个特殊函数#创建一个Playwright的管理器对象asyncwithasync_playwright()asp:#等同于p=sync_playwright()#基于p创建一个浏览器......
  • C++ 入门一
    C++入门一1.C++关键字2.命名空间2.1命名空间定义2.2命名空间使用3.C++输入&输出C++是一种高级编程语言,由BjarneStroustrup在20世纪80年代初期在贝尔实验室开发。它是对C语言的扩展,添加了面向对象编程的特性,如类和对象、继承、多态和封装。C++支持多种编程范式,......
  • Linux 软件包管理器yum
    一、yum概念yum是一个软件包管理器,相当于手机上的应用商店。Linux系统中的软件包可能会存在依赖关系,下载软件A,可能会需要同时下载文件B、C、D,但是yum会帮我们解决这些软件包之间的依赖关系。2.yum的生态Linux系统中有三种下载软件的方式:源代码安装、rpm包安装、yum安装源......
  • Unity性能优化-C#篇
    Unity性能优化-C#篇 1.UnityAPI GameObject.GetComponentUnity是基于组件的开发方式,所以GetComponent是一个高频使用的函数每次调用GetComponent时,Unity都要去遍历所有的组件来找到目标组件每次都去查找是不必要的耗费,可以通过缓存的方式来避免这些不必要的开销其中......
  • Datacom HCIP笔记-MPLS协议 之一
    MPLS标签放在二层头和IP头之间可以称之为2.5层的位置LSP(LabelSwitchedPath):标签交换路径,艮即到达同一目的地址的报文在MPLS网络中经过的路径。FEC(ForwardingEquivalentClass):一般指具有相同转发处理方式的报文。在MPLS网络中,到达同一目的地址的所有报文就是一个FEC。......
  • ES入门十二:相关性评分
    对于一个搜索引擎来说,对检索出来的数据进行排序是非常重要的功能。全文本数据的检索通常无法用是否相等来的出结果,而是用相关性来决定最后的返回结果相关性是值搜索内容和结果的相关性,是用来描述文档和查询语句的匹配程度的。通过计算相关性,可以得出一个相关性评分,然后根据......
  • centos 安装 jenkins
    1.下载war包。注意:需要JDK11版本及以上  https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.426.1/jenkins.war2.启动jenkinsjava-jarjenkins.war--httpPort=75003.访问http://localhost:7500,一直下一步。4.新建一个自由风格配置  5.配置shell  注......
  • java的封装
    在Java中,封装是面向对象编程中的一种重要概念,它指的是将数据和方法打包在一个单一的单位(类)中,并对外部隐藏对象的内部细节。封装通过将类的成员变量声明为私有的,并提供公共的方法来访问和修改这些变量,从而实现了数据隐藏和安全性。封装的主要目的有以下几点:数据隐藏:封装允许......
  • 【C语言】深入了解指针(2),进来小白,出去大佬!
    目录1,const修饰指针1.1,const修饰变量1.2,const修饰指针变量2,指针运算2.1,指针+-整数 2.2,指针-指针2.3,指针的关系运算3,野指针3.1,野指针成因1, 指针未初始化2.,指针越界访问3,指针指向的空间释放3.2,如何规避野指针1,指针初始化2,⼩⼼指针越界3,指针变量不再使⽤时,及时......