推广 热搜: 快速  企业  未来  公司  中国  上海    政策  行业  教师 

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

   日期:2024-11-16     作者:caijiyuan    caijiyuan   评论:0    移动:http://houdi.cs-ej.cn/mobile/news/812.html
核心提示:计算机网络是指将位于不同地理位置,但具有独立功能的多台设备,通过通信设备和线路连接起来,在网络操作系统,网络管理软件、网

计算机网络是指将位于不同地理位置,但具有独立功能的多台设备,通过通信设备和线路连接起来,在网络操作系统,网络管理软件、网络通信协议的协调管理下,实现资源共享和信息传递的计算机系统。

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

简单来说就类似于国内的普通话,因为不同省份的方言不同,导致不同地方的人交流起来并不方便,因此定义了“普通话”这一标准,所有人都遵循该标准进行交流沟通。

PS:国际标准化组织提出的模型未得到广泛应用的原因:①制定时太过理想化,未考虑实际的应用场景。②拆分过于精细化,实现起来过于复杂,运行效率并不高。③体系的制定周期过长,导致按其标准生产的设备无法及时投入市场抢占份额。④体系因为分层过多,设计也不合理,有些相同的功能在多个层次重复出现。

在组织定义的国际标准模型中,是七层网络模型。在实际应用最广泛的模型中,是四层网络模型。当然,在计算机网络教学中,也提出了五层网络模型。

但无论多少层网络模型,其实本质上都是在叙述相同的内容,只不过拆分的精细度不同而已,三种网络模型对应如下:

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

注意点:在最初因为技术问题,因此数据传输必须建立在物理实体介质的基础之上,但如今无线电的电磁波技术也可以做到利用空气作为介质,从而达到传输数据的目的。

2.1.1、OSI模型的通信的封装与解析过程

竹子想发微信信息给熊猫,喊熊猫出来玩,但双方之间的通信基础必须对等,也就是说,熊猫的手机上也必须要安装了微信,否则竹子无法通过微信与熊猫出来玩。但如果竹子说的是汉语,熊猫只能懂汉语,双方并未遵守相同的“协议”,那两者之间自然也无法进行通信。因此,通信的另一要素则是:通信双方都必须遵守相同的协议。

而在计算机网络中,当两台机器进行通信时,其过程主要包含数据的封装与解封:

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

除开最常见的TCP/IP协议簇外,还有一些其他的协议组,如等协议组。

2.2.1、通信协议的基本概念

2.2.2、协议数据单元(PDU)

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

2.3.1、物理层

先来看最简单的通信模型:

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

对于如上问题,我们可以将其全部归纳到“物理层”来解决,在该层中定义标准规范。

2.3.2、数据链路层

但一般现在不会存在直连型网络,常用的计算机网络都是由多台机器共同组成的,如下:

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

对于上述中的这些问题,可以全部划归到链路层处理。

PS:对于这种总线型网络早已淘汰,目前常用的则是以太网的交换式通信模型:

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

2.3.3、网络层

到目前为止,解决了物理层及链路层中的问题后,就可以实现数据在一个局域网络中的传输了。但实际每天都接触的因特网是由无数个小网络和路由器互连组成的,如下:

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

而对于这些问题我们都可以划归到网络层处理。

路由选择:路由主要包括路由表和路由算法两个方面,网络层会根据速度、距离(步跳数)、价格及网络拥塞程度等因素,在路由表的多条通信路径中找一条最佳路径。

2.3.4、传输层

主机A上安装了QQ、微信、谷歌浏览器,当另一台主机向主机A发送数据时,那这些数据到底应该交给主机上的哪个进程处理呢?

这些问题可以被划归到传输层加以解决。

2.3.5、应用层

体系中将资源子网都合并为了应用层,但在模型中,资源子网是分为应用层、表示层、会话层三个层次的,也就是拆分粒度更精细化,服务也更为精细化。

2.3.5.1、OSI-表示层
2.3.5.2、OSI-会话层

简单而言,应用层主要是为用户与网络之间,提供各类可“接触”的窗口。

2.3.6、TCP/IP体系中数据的通信过程

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

举例:IP地址就如同是物流线路上的驿站地址,而MAC地址就是具体货架上货物的位置。

3.1.1、IP地址的组成与分类

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

A类IP

PS:为什么类网络的地址范围是呢?因为类中用表示网络标识,首位需要保留为,因此剩下的能够表示的最大数字为,末位也需保留,因此类网络地址的取值范围为。

示意图如下:

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

B类IP

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

C类IP

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

D类IP

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

E类IP

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

IP分类小结

3.1.2、子网掩码

修改子网掩码为局域网扩容

最终可用范围为:,可用地址共计个。嗯?是什么东东?其实这个值是子网掩码的简写方式,之前算出来的子网掩码为,转换为二进制,一共存在个,因此可以简写为。

如何判断两个处于同一个网段

网络地址 = 地址 “位与” 子网掩码。

,转换为十进制为。

,转换为十进制为。

子网掩码小结

3.1.3、IP协议核心流程

但在实际的网络通信过程中,可能有时数据发送的链路非常遥远,如你从中国向日本网友发送一条数据,那么由于一些网络抖动、物理介质损坏都会导致数据丢失。但此时又该如何确保数据“安稳”到达目的地呢?

正因为路由控制的存在,所以即使网络复杂多变,也能够通过路由器的控制将数据“安稳”送达至目的主机。

跳:数据包经过一台路由器就是一跳。好比一个网络中存在四个路由器:,如果局域网中的主机要给局域网中的主机发送数据,从理论上来说就会经过三台路由器,也就是会经过三跳。

3.1.4、IPv4与IPv6

3.2.1、TCP协议简介

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

当数据接收完成后,会用校验和函数来检验数据是否正确,在发送方和接收方都需要计算该值,发送方计算后会将该值放在头中携带发送,接收方接收到数据后,也会再次计算该值,再与报文头中的值进行比对,确认数据的正确性。

3.2.2、连接管理机制 - 三次握手与四次挥手

想要了解清楚这个问题的答案,那么得先了解建立与关闭连接的过程。

TCP的三次握手

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

当然,这个过程略微有些难理解,换个日常生活的例子来快速理解一遍!

TCP的四次挥手

当“三次握手”完成后,客户端和服务端之间会成功建立连接,从此开启双方端到端之间的数据传输,当一方数据传输完成后,会尝试中断连接,因此又会经历“四次挥手”的过程,如下:

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

本质上“三次握手与四次挥手”就是在指建立与关闭连接的过程,搞明白建立和关闭连接的过程后再来看看最开始的问题:“为什么是三次握手,四次挥手!

为什么TCP是三次握手,四次挥手

3.2.3、TCP中的沾包问题

沾包问题:多个数据包在一块儿,无法确定每个数据包之间的分割边界,因此从应用层的角度看来,就好像多个数据包“沾”在了一起。

沾包问题解决方案

3.2.4、TCP协议中的其他核心概念

3.3.1、UDP的报文头

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

3.3.2、UDP核心流程

正因为如上特性,因此的传输速度仅受到数据生成的速度、计算机算力和传输带宽的限制。

因为由于高效的传输性能,因此常备应用在广播通知、音频通话、视频传输等多媒体数据流业务,而且这类业务中,如果有一个数据包丢失,在很短的时间内就会有另一个新的数据就会替换它,因此就算数据传输不可靠也无关紧要。

3.3.3、UDP中的丢包问题

丢包问题解决方案

3.3.4、TCP与UDP之间的区别

面向连接面向无连接可靠信息传输不可靠信息传输字节流传输报文传输传输速度慢传输速度快仅支持点对点通信支持一对一、一对多、多对多通信具备拥塞机制和流量控制不具备拥塞机制和流量控制TCP首部至少个字节UDP首部仅个字节

(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述

这里面牵扯到很多原因,有历史原因,也综合考虑了服务器负载、网络复杂度、服务器数量/网络带宽成本问题、实现难度等多方面因素导致的。

不过有时候之所以会看到“消息发送失败的红色感叹号”,但对方又收到了这个消息的情况,就是因为客户端发出的消息,服务器已经收到并转发成功,但客户端由于网络原因没有收到服务器的应答包引起的。也包括网络比较差的情况下,信息发送之后,对方接收到的顺序跟你发出的不一致,这个也是由于无序导致的。

如果无法穿透,那则无法进行通信,无法穿透的原因也可能由于地理位置、网络类型限制等多方面因素导致。

通信翻译过来也就是端到端通信,在模型中,服务器只作为客户端地址的中转站存在,不需要承担高昂的流量成本。

本文地址:http://houdi.cs-ej.cn/news/812.html    成事e家 http://houdi.cs-ej.cn/ , 查看更多
 
标签: 协议
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号