
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了程序员在学习软件编程开发技术之前都需要掌握大部分的互联网网络知识,而本文我们就简单来了解一下,网络传输的基本流程和常见问题。
不同的协议层对数据包有不同的称谓,在传输层叫做数据段(segment),在网络层叫做数据报(datagram),在链路层叫做数据帧(frame),应用层叫做请求和响应
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据部(header),称为封装(Encapsulation)。部信息中包含了一些类似于部有多长,载荷(payload)有多长,上层协议是什么等信息
因每一层的传输数据单元不同,所以需要封装报文头部,以此使下一层能够看懂识别。
传输层:传输层有TCP/IP两个协议,TCP(传输控制协议)和UDP(用户数据报协议)。TCP协议传输更加稳定可靠,UDP协议传输效率更高。所以,上层数据到达传输层后需要封装TCP头部或者UDP头部。
网络层:同理,上层数据到达这里需要封装IP头部。
TCP/IP定义了网络互联协议(IP)(英文是IternetProtocol)。而IP又由四个支撑协议组成:ARP(地址解析协议),RARP(逆地址解析协议),ICMP(网际控制报文协议)和IGMP(网际组管理协议)。
数据链路层:同理,上层数据到此需要封装MAC头部。
物理层:到达物理层就直接由计算机通过信号接收了。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的部,根据部中的“上层协议字段”将数据交给对应的上层协议处理
问题:
每一协议层的数据包是什么?
数据包=报头+有效载荷
协议的共性是什么?
1.如何将数据包中的报头和有效载荷分离的问题,这个过程叫做解包。
2.自底向上,要确认自己的有效载荷交付给上层的那个协议,这个过程叫做分用。
如何解决将数据包中的报头和有效载荷分离的问题?
1.定长报头。报头的长度是确定的,这样就可以实现二者分离。
2.自定义描述符字段。报头中添加一个字段,表示报头的长度。
数据封装的过程:
局域网通信
局域网内的主机是通过路由器和交换机连接在一起的,局域网内的两台主机通信本质就是两个协议栈之间在进行通信,下面是两台主机通过TCP/IP协议进行文件传输的过程:
数据在自身协议栈自顶向下进行封装:
数据包交给应用层,应用层添加上对应的应用层协议报头,然后把整个数据包向下交付给传输层
传输层再添加上对应的传输层协议报头,然后把整个数据包向下交付给网络层
网络层再添加上对应的网络层协议报头,然后把整个数据包向下交付给数据链路层
数据链路层再添加上对应的数据链路层协议报头,然后把整个数据包通过网络交付给对端数据链路层
数据在对端协议栈自底向上进行分用:
数据链路层将数据包的报头和有效载荷进行解包分离,然后将有效载荷交付给上层的网络层
网络层将数据包的报头和有效载荷进行解包分离,然后将有效载荷交付给上层的传输层
传输层将数据包的报头和有效载荷进行解包分离,然后将有效载荷交付给上层的应用层
应用层将数据包的报头和有效载荷进行解包分离,将后的数据进行相关处理然后交付给用户
思考下面几个问题:
1.局域网中,所有的主机可以直接通信,它们是如何确定数据是发给哪一台主机,目标主机又是如何确认数据是发给自己的?
在数据链路层,有一个MAC地址(48位),网卡硬件地址或者序列号,是全球的,用来标识主机的性。每一台主机都要一个MAC地址,且都知道,发送方将数据发出去,这个数据里面包含目标主机的MAC地址信息,每个主机都可以收到这一份数据,且用自己的MAC地址与数据中的目标主机MAC地址进行比较,如果不同,表明该数据不是发给自己的,就将数据丢掉,相同就表明该数据是发给自己的,就收下。
2.局域网中,如何将数据发送给所有主机?
主机发送数据是,将MAC地址设置为一个广播地址,这样所有的主机都认为这个数据是发给自己的
3.局域网通信原理
局域网中,有多台主机直接通信,有可能会发生数据碰撞,这样就会影响其它主机间的通信,所以一个局域网可以看作是一个碰撞域。
碰撞后的数据就是垃圾数据量,局域网中的所有主机都可以收到发出去的数据,包括发数据的主机本身也是如此,该主机会将收到的数据和此前发出去的数据进行对比,如果不同,代表此前发出去的数据发生了碰撞,这就是碰撞检测
数据发生碰撞后,发送方不会立即将数据进行重写发送,而是等一段数据,在重新发生,这就是碰撞避免算法,也是碰撞避免的一种机制
所以说,局域网的数据通信时在一个碰撞域中不断地碰撞,然后进行碰撞检测,碰撞避免。
局域网通信的本质就是基于碰撞域、碰撞检测和碰见避免实现通信,局域网内主机越多,碰撞几率越多,交换机在局域网中的作用就是划分碰撞域,解决碰撞问题,降低碰撞几率
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。