计算机网络(三)——数据通信

计算机网络的数据通信过程主要基于下三层来实现,在这里我简单的说一下关于下三层的硬件结构;

物理层主要是进行二进制转换的,两个主机互联,首先它的比特率必须一致,否则数据就无法正常的传输,会导致数据不一致等情况;而物理层的硬件设施有中继器,集线器;中继器,具有两个端口,可以在数据通信时因为距离过长而无法通信的问题,数据从一个接口进入中继器,由另一个接口出来后,数据通信的强度就会恢复,但是中继器只有两个接口,这样效率就会很低,而集线器的产生就是在中继器的基础上进行强化,集线器具有多个接口,可以将多个主机设备连接在一起,形成一个物理上是星型结构,逻辑上却是总线结构的网络拓扑;但集线器的一个问题就是,他这样的连接方式会导致数据之间的冲突过多,数据传输的效率就会慢;而什么是冲突,在下面会讲述到;

数据链路层主要是定义物理地址,对接收到的数据进行校验,判断是否有差错产生;数据链路层的主要设备是网卡,网桥以及交换机;其中网桥和交换机是在数据链路层的基础上扩展以太网;网桥工作在数据链路层,他根据MAC帧的目的地址对收到的帧进行转发和过滤,当网桥收到一个帧时,不是立刻将其广播给所有接口,而是判断该帧是否存在于网桥转发表中,若存在,则根据目的MAC地址在转发表中对应的接口进行单播转发,若没有,则广播所有接口;交换机实际上就是一个多接口的网桥;在交换机中,每一个主机都拥有自己的一个冲突域,即每一个主机之间是不会产生冲突的,但但这一点,就比集线器好很多,所以现在市面上所用的存储转发设备一般都是交换机了,很少看到有集线器的存在;

数据链路层所具有的差错检测功能是由CSMA/CD协议实现的,它是一种带有冲突检测的载波监听多路访问协议;该协议具有多路访问的特性,每一个主机都可从其信道上发送数据到总线上进行传输,这种多路访问的结构也容易导致冲突;CSMA/CD协议的一个重要的功能就是载波监听,主机在进行发送的时候,需要进行载波监听,如果检测到载波,就说明有数据在运行,就延时发送,延时时间为随机数,若没有检测到载波,表示总线空闲,则可发送数据,但如果有多个主机检测到总线空闲,一起发送数据,就会导致冲突,一旦产生冲突,所有的站点都回退,各个站点均等待一个随机时间重新进行载波监听;

交换机的功能主要体现在以下几个方面:

①学习:交换机对于每一个转发到它这里具有IP和MAC地址的帧,它会判断是否有这个帧的源MAC地址,若没有,则将源MAC地址写入交换机的转发表,然后在进行广播,寻找符合该目的MAC地址的接口;如果接收到的数据帧中的源MAC地址,已经出现在MAC地址表中,则更新该条目的时间戳;

②转发:

有目的转发:交换机在接受到数据帧时,若该目的MAC地址存在于交换机转发表中,则按该目的MAC地址所对应的接口进行单播转发;

无目的转发:交换机在接受到数据帧时,该目的MAC地址不存在于交换机转发表中,则将该数据帧进行广播,也可称之为泛洪;

过滤:如果交换机收到的一个数据帧,发现该数据帧的目的MAC地址对应的端口和接收数据的端口是同一个端口,则这样的数据,过滤不接收;

网络层主要是为上层运输层所传下来的分组能够找到合适的路由去寻找到目的主机;而在网络层中进行数据传输,不能使用IP地址,而要使用这个IP地址所对应的MAC地址,只有通过这个MAC地址才能找到合适的路由,IP地址一开始是由应用程序向DNS服务器进行请求所得出的,IP地址可以通过ARP协议进行转换,转换成物理地址即MAC地址,在这个过程中,需要知道的是,每一个主机都有其所对应的ARP缓存表,在表中有所对应的IP地址和其MAC地址,将IP地址转化为MAC地址的过程中,若能在该主机自身的ARP缓存表中找到所对应的MAC地址,则可直接获得,若无法找到,则需要通过ARP协议封装出一个ARP数据包里面有对应的MAC地址,将其广播出去,目的主机收到之后,将源MAC地址和源IP地址存在自身的ARP缓存表中,并将自己的MAC地址和IP地址数据封装后,以单播的形式返回,这样就可以获得目的主机的MAC地址;

数据通信之双机互连:

①如果用户在应用程序中没有指定目标IP地址,则可由应用程序发送请求到DNS服务器获取目标IP地址,或由用户自己手动指定;

②获取IP地址后,确定将要连接的传输层协议;选择TCP/IP协议;则要进行三次握手连接后再发送数据;

③IP协议会按照正确的地址和对应格式完成数据封装,但是网络访问层需要通过MAC地址完成数据传输,因此需要查询ARP缓存中是否有对应该IP地址的MAC地址记录;在ARP缓存表中查找目标IP地址的MAC地址,若无,则将TCP三次握手连接暂存在内存中;封装ARP数据包,广播发送,目标主机收到ARP数据包后,将源IP地址及MAC地址缓存,再将自身的IP地址和MAC地址封装单播发送回来;

④源主机接收到ARP数据包后,获得了目标主机的MAC地址,开始进行TCP三次握手连接;

⑤数据报文传输完毕后,再进行TCP四次挥手结束连接;

数据通信之交换机通信(UDP)

①如果用户在应用程序中没有指定目标IP地址,则可由应用程序发送请求到DNS服务器获取目标IP地址,或由用户自己手动指定;

②获取IP地址后,确定将要连接的传输层协议;选择UDP协议;则数据直接由应用层发往UDP进行直接传传输;将UDP封装好的数据交给IP协议进行进一步的封装;

③将封装好的IP协议交由网络层进行封装,网络层需要获取目标主机的MAC地址,才可在网络层中进行传输,访问当前主机的ARP缓存表,看是否有对应目标IP地址的MAC地址,若无,则将UDP连接暂存在内存中;封装ARP数据包,广播发送,经过交换机时,由交换机查看是否有该ARP封装的源MAC地址,若无,则将源MAC地址写入交换机转发表中,进行泛洪操作,若有,则进行单播发送到目标主机;目标主机收到ARP数据包后,将源IP地址及MAC地址缓存,再将自身的IP地址和MAC地址封装单播发送到交换机,交换机查看是否有该主机的源MAC地址,若无,则将源MAC地址写入交换机转发表中,进行泛洪操作,若有,则进行单播发送到目标主机;这样就可使源主机获取目标主机的MAC地址,并写入到源主机的ARP缓存表中,可以开始在网络层中传输;

④按照ARP缓存表中的目标MAC地址传送数据;

数据通信之交换机通信(TCP)

①如果用户在应用程序中没有指定目标IP地址,则可由应用程序发送请求到DNS服务器获取目标IP地址,或由用户自己手动指定;

②获取IP地址后,确定将要连接的传输层协议;选择TCP协议;则数据需要先建立TCP的连接,即三次握手后,才可传输数据;将TCP封装好的数据交给IP协议进行进一步的封装;

③将封装好的IP协议交由网络层进行封装,网络层需要获取目标主机的MAC地址,才可在网络层中进行传输,访问当前主机的ARP缓存表,看是否有对应目标IP地址的MAC地址,若无,则将TCP三次握手连接暂存在内存中;封装ARP数据包,广播发送,经过交换机时,由交换机查看是否有该ARP封装的源MAC地址,若无,则将源MAC地址写入交换机转发表中,进行泛洪操作,若有,则进行单播发送到目标主机;目标主机收到ARP数据包后,将源IP地址及MAC地址缓存,再将自身的IP地址和MAC地址封装单播发送到交换机,交换机查看是否有该主机的源MAC地址,若无,则将源MAC地址写入交换机转发表中,进行泛洪操作,若有,则进行单播发送到目标主机;这样就可使源主机获取目标主机的MAC地址,并写入到源主机的ARP缓存表中,可以开始在网络层中传输;

④进行TCP三次握手连接,按照ARP缓存表中的目标MAC地址传送数据;

⑤当数据报文传输完毕后,发起断开TCP连接,四次挥手;

时间: 2024-12-06 03:42:17

计算机网络(三)——数据通信的相关文章

计算机基础之计算机网络与安全

第六章.数据通信与计算机网络 (数据通信,数据在信道中传输的速率.带宽,调制方式等方面,主要讲一下计算机网络) 1.什么是计算机网络? 简单来讲,计算机网络就是把单机通过通信设备和数据线连接起来构成的网络,以实现 数据共享和信息交换. 2.最常见的计算机网络有哪些? LAN,Internet:依照传输频段来讲,分为基带信号和宽带信号. 3.计算机网络採取的模型结构是如何的?每一层的作用是什么,与每一层相关联的硬件是什么? 计算机网络依据7层OSI设计,也就是Open System Interco

Linux运维网络基础

一.计算机网络的定义 什么是网络? 一群具有独立功能的计算机组成的系统通过通信设备及传输媒体互连起来,在通信软件支持下,实现资源共享.信息交换的整个系统 产生计算机网络的基本条件:通信技术与计算机技术的结合 二.计算机网络的产生与发展    1954年 主机-终端的通信网络            第一代计算机网络 以单个主机为中心.面向终端设备的网络结构.系统中除主计算机具有独立的数据处理功能外,系统中所连接的终端设备均无独立处理数据的功能 1969年 主机-主机的通信网络  ARPANET网

计算机安全技术(第2版)

计算机安全技术(第2版) 主编:张同光 清华大学出版社 ISBN:9787302429654 出版日期:2016.03.01 印刷日期:2016.03.16 http://www.tup.com.cn/booksCenter/book_06791501.html 内 容 简 介 本书以解决具体计算机安全问题为目的,全面介绍了计算机安全领域的实用技术,帮助读者了解计算机安全技术体系,掌握维护计算机系统安全的常用技术和手段,解决实际计算机系统的安全问题,使读者从全方位建立起对计算机安全保障体系的认识

2015秋课程

  一 二 三 四 五 一   操作系统    操作系统   二   计算机网络  软件测试方法 计算机网络   三 算法分析与设计   计算机体系结构     四 算法分析与设计   计算机体系结构    

略略略-Updating

主目录 错过了春招,能力有限与大厂无缘了,只能老老实实准备秋招咯,加油呗Hxd! 在各大网站收集到的面经和资料放在这里,只用于个人秋招准备! 先端上吊炸天的复习书Github:Interview-Notebook ---来自渣渣最后的挣扎! 编程语言基础知识:C/C++.Java 算法与数据结构 计算机网络 操作系统 数据库.编译原理.汇编知识.软件工程思想 杂项:Linux常用命令.Git 项目经验(实习后补充吧~) 一.编程语言基础知识:C/C++.Java C/C++篇: 基础知识 参考这

扫清 Android 面试障碍--面试前的准备及必刷面试题

又准备要去面试了吗? 来来来,给你点干货建议. 磨刀不误砍柴工, 面试的时间一般只有几个小时不到,所以做好充分准备会极大提高你的成功率.面试的要点分: 面试前的准备和面试中的注意事项,接下来先来说说面试前的准备. 面试前准备 毋庸置疑,求职者在面试之前必须做好充足的准备,我认为有以下几点是重中之重: 完善简历,以及对简历内容做充分准备 可以说简历内容不在于多而在于精,尽量让每个字都有信息量,而且千万要中肯,比如说对于三年以内工作经验的,还是不要用「精通」这两个字了,会让面试官觉得你很浮夸. 坦率

计算机网络知识点复习(三)

21.TCP状态机. 网络上的传输是没有连接的,包括TCP也是一样的.而TCP所谓的"连接",其实是由通讯的双方维护一个"连接状态",让它看上去好像有连接一样.所以,TCP的状态变换是非常重要的. 下面是TCP协议的状态机 下面是 "TCP建链接"."传数据"."TCP断链接" 的对照图: 22.三次握手的过程与建立连接时需要注意的要点. 连接建立过程中要解决以下三个问题: (1)要使每一方能够确知对方的存

Netty实践(三):实际场景下的数据通信

数据通信的场景:长连接 OR 短连接 在实际场景中,我们如何使用Netty进行通信呢?大致有3种方式: 第一种,使用长连接通道不断开的形式进行通信,也就是服务器和客户端的通道一直处于开启的状态.如果服务器性能足够好,并且我们的客户端数量也比较少的情况下,是适合使用长连接的通道. 第二种,采用短连接方式,一次性批量提交数据,也就是我们会把数据保存在本地临时缓冲区或者临时表里.当达到数量时,就进行批量提交:或者通过定时任务轮询提交.这种情况是有弊端的,就是无法做到实时传输.如果应用程序对实时性要求不

计算机网络——TCP三次、四次握手详解

三次握手:建立TCP连接 连接建立过程: B的TCP服务器进程先创建传输控制块TCB(存储了每一个连接中的一些重要信息,如:TCP连接表,到发送和接收缓存的指针,到重传队列的指针,当前的发送和接收序号,等),准备接受客户进程的连接请求.然后服务器进程就处于LISTEN(收听)状态,等待客户的连接请求.如有,即作出相应. A的TCP客户进程也是首先创建传输控制模块TCB,然后向B发出连接请求报文段,这时首部中的同步为SYN=1,同时选择一个初始序号seq=x.TCP规定,SYN报文段(即SYN=1