第一章概述
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。
在双绞线中,直接参与通信的导线是线序为1、2、3、6的四根线,其中1和2负责发送数据;3和6负责接收数据。
对以上两种线缆,针对应用情况不同又分为:
- 直通线:也称直连线,是指双绞线两端线序都为568A或568B,用于连接不同种的设备。
- 交叉线:双绞线一端线序为568A,另一端线序为568B,用于连接同种设备。
应用:
1.3计算机网络协议
计算机网络协议(Protocol)一般至少包括三个要素:
- 语法:规定用户数据与控制信息的结构和格式。
- 语义:规定需要发出何种控制信息以及完成的动作与做出的响应。
- 时序:规定对事件实现顺序控制的时间。
开放系统互联的体系结构(Open Systems Interconnection,OSI)
OSI/RM模型分为7层,从下往上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层.
助记:
例如: 小黑买了一台新的台式大头电脑(物理层),他想要上网,就得连接网络. 于是又买了网线喊来了网警(数据链路层)给他安装网线. 等线接好了他发现不能上网.他很生气于是又咬咬牙买了一个网络账号登号拨号上网(网络层),
终于能上网了QAQ ,小黑赶紧下载(传输层)了一个QQ,随后拿出褶皱的纸,上面写着小丽的QQ号码.安装好之后登上QQ进入聊天框 给小丽发送(会话层)了一句: "我爱你,一万年".(表示层) ,不久小丽看到小黑的消息. 回复了一句:"我不喜欢你. 就这样吧." 然后就把小黑删了(应用层)
划分层次的原则是:
- 网中各结点都有相同的层次。
- 不同结点的同等层具有相同的功能。
- 同一结点内相邻层之间通过接口通信。
- 每一层使用下层提供的服务,并向其上层提供服务。
- 不同结点的同等层按照协议实现对等层之间的通信。
助记仅提供象形助记,并非知识点,下面是每层的应用:
层 次 | 数据格式 | 主 要 功 能 | 典 型 设 备 |
---|---|---|---|
应用层 | 数据报文 | 为应用程序提供网络服务 | |
表示层 | 数据报文 | 数据表示、数据安全、数据压缩 | |
会话层 | 数据报文 | 建立、管理和终止会话 | |
传输层 | 数据报文 | 提供端到端连接 | |
网络层 | 数据包 (分组) | 确定地址、路径选择(路由) | 路由器 |
数据链路层 | 数据帧 | 介质访问(接入) | 网桥、交换机、网卡 |
物理层 | 比特流 | 二进制(Bit)数据流传输 | 光纤、同轴电缆、双绞线、中继器和集线器 |
1.3.1 数据链路层
- 主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路改造成对网络层来说无差错的数据链路。
数据链路层分为介质访问控制(MAC)子层和逻辑链路控制(LLC)子层。
- 在物理层提供比特流传输服务的基础上,传送以
帧
为单位的数据。 - 数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲区溢出及线路阻塞等问题。
1.3.2数据的封装与解封
封装:
解封:
一般而言,由于OSI体系结构具有概念清晰的优点,主要适用于教学研究。
1.3.3 TCP/IP模型
ARPAnet最初开发的网络协议使用在通信可靠性较差的通信子网中,且出现了不少问题,这就导致了新的网络协议TCP/IP的产生。虽然TCP/IP协议不是OSI标准,但它是目前最流行的商业化的网络协议,并被公认为当前的工业标准或“事实上的标准”。
TCP/IP参考模型分为4层: 网络接口层、网络层、传输层和应用层。
关于TCP的三次握手四次挥手:
TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。
三次握手建立连接:
所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总共发送3个报文。
第一次握手:
客户端将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)又帮了一个强子吃上了了瓜.
四次挥手关闭连接:
第一次挥手: 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 拓扑结构
计算机网络拓扑结构主要是指通信子网的拓扑结构。
① 星形拓扑。
② 总线型拓扑。
③ 环形拓扑。
④树形拓扑。
从星形拓扑或总线型拓扑结构演变而来的,形状像一棵倒置的树,顶端是树根,树根以下带分支,每个分支还可再带分支,树形拓扑结构在中小型局域网中应用较多。
Q: TCP与UDP的区别
TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP.
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 应该根据应用的目的按需使用。