00:00
行,那么关于通讯要素一的话,我们刚才就已经算讲清楚了,那具体落地的话,涉及到两个概念,第一个呢是叫IP,第二呢是叫端口号,然后IP呢,咱们用一个I net dress这个类的实例去代表一个具体的IP端口号,哎,我们来区分不同的进程,哎,不同的这个进程,那端口号和IP咱们刚才提到说共同构成一个叫网络套接字,哎,这就结束了,然后接下来呢,我们来提一下叫网络通信要素二,通信要素二提到了叫网络协议,我们光知道对方的主机和IP以后,呃,这个主和端口号以后,我们还得想办法知道怎么去传,有什么样的规则,这个规则呢,就是所谓的协议。诶,刚才我们也提到了这个问题了,在传输过程当中遵循的这个规则或者叫约定就叫做协议了,哎,对速率传输代码,代码结构,传输控制步骤出错控制制定的一个标准,那实际问题呢,因为这个协议太复杂了,所以我们就分层一层一层的去说明,就是每一层解决每一层的问题。
01:06
啊说同层之间呢,可以通信,上一层和下一层之间可以通信,不能隔层通信。啊,不能隔层通信好,那具体的这几层呢,咱们刚才那会儿已经讲到了啊,那么在我们这个村通信这个协议当中,在传输层中有两个比较重要的协议,一个呢叫TCP协议,一个呢udp协议啊,传输控制协议和用户数据报协议,那么我们就以这两个协议啊,因为咱们数据要传输,就避免不了跟我们TCP啊或udp呢去打交道了啊,那这呢,我们就是以这个协议和我们这个网络层中的IP协议,你要合在一起的话呢,我们就通常称作叫TC pip的一个,呃,不能是一个协议了啊,叫协议促啊,这呢是针对我们这个传输层的,这个呢是网络层的啊,所以经常我们看到叫TC pip协议啊,其实这里边涉及到啊,传输层和网络层当中的两个协议,哈行,那我们接下来呢,要想实现网络的一个编程,咱们呢,离不了关于传输层的这两个协议的一个说明。
02:13
因为它两种方式呢,稍有不同啊,那下边呢,我们给大家介绍一下,说TCP和UTP有什么不同啊,这是两种不同的协议啊,这个规则呢是不一样的啊,规则是不一样的,就像现在这个,呃,像这个5G啊,现在全世界范围内呢,就开始出现这个5G的这个具体落地啊,要升级这个。代数了啊,这个这个就是generation嘛,第五代啊,那现在的话呢,像华为呢,是一套自己的这个规则,嗯,像这个高通的话呢,也有一套他的一套规则,那事实上的话呢,华为这套规则。这个华为确实还是挺强的啊,呃,应该说现在呢,从呃世界范围内来看,呃,从这个具体的这个标准的制定,呃,这个包括具体落地的这个产品,包括这个搭建整套服务,只有华为能够做这个事情啊,像这个高通的话呢,其他的一些这个电信厂商呢,说至少要落后华为一年时间。
03:08
啊,况且的话呢,他们现在有不同的标准,这些标准呢,其实呃,具体落地实施的话呢,有的还不是特别现实,尤其像说到美国这个地广人稀啊,像用这个高通的这套标准呢,这个华为的这个成本要高很多啊,可能这个华为这个呢就更适合一些啊,具体细节咱不了解啊,你就知道呢,他们虽然说都叫5G通信技术,但是呢,具体的实施的这个标准是有区别的,使用场景呢,可能也有区别啊,就类似于我们现在说的这个TCP和udp一样。虽然呢,都是传输层的协议,但是他们这个规则不一样。啊,那我们来看一下具体的规则,TCP协议说呢,在使用TCP协议之前,首先呢需要建立TCP的连接,先形成一个数据通道。那形成数据通道以后呢,我们才可以去传数据,这呢就提到一个叫三次握手,通过握手我们确定啊对方呢是存在的,比如说我们通常习惯上哎通这个两端呢,一个叫客户端,一个呢叫服务端,或者叫服务器端,这呢是一个客户端,这是一个服务端,我客户端呢想发送数据给我们服务端。
04:17
那发送之前先别一上来就把这个数据扔出去了,那万一对方要不在呢,所以呢,我们在发送数据之前呢,先进行一次握手,通过这个握手确定对方在了,我们再发送数据。再发送数据啊,那么这呢,提到一个三次握手,大家呢,了解一下,我这儿呢,就提出来一个叫三次握手,它到底是怎么做的啊,写了个123这个一三这呢,你可以理解为是我们的客务端,这理解为是我们这个服端啊实际上的话呢,其实我们说不一定非得要三次握手,说一次行不行,两次行不行啊,那三次的话呢,那四次行不行,100次行不行。
05:01
啊,其实呢,都可以考虑。啊都可以考虑,我们先以这个三四为例啊说明一下啊,嗯,我先说一个,嗯,生活中的一个例子啊,生活中例子比如说这个客户端,比如说就是我这个服务端。赞,比如说是马云吧。我跟马云对话是吧,嗯,然后呢,我就发送了信息说呢,这个嗯,你好,我是孙悟康,然后马云这块呢,这是他的二是吧,他说诶你好,我知道你是孙文康,我是马云,然后呢,他再发过来,哎,他发过来你你注意听我这个过程啊,这个三的时候呢,他又发给我了,然后我说啊,我知道你知道我是孙悟康,你是马云,然后呢,我是孙悟康又发过去了。这是三个步骤。没听明白是吧,再说一遍啊,我这三句话呢,是是是有是有这个对应关系的啊,这里边你看涉及到这样的一些量了,一呢是我发了一条数据,说我是宋文康,二呢说我知道你是宋文康,我是马云,哎再回过来,我知道你知道我是宋文康,你是马云,然后再发出去,这就相当于是进行了三次握手,那其实呢,这块还可以接受,马云说我知道你知道我是呃马云,你是孙悟康,然后我是马云,这就第四次握手,然后后边还是我知道你知道我是你知道这样是吧,那就再下去啊,诶实际上呢,可以进行多次握手,但是呢,我们说三次,基本上我们就能够保证这次是可靠的,说我在你也在,就可能到三次时候呢,已经可以达到99%以上的,这个确定性是双方都在的,你再四次的话呢,可能99.1%了,提升非常有限,就没有必要再进行四次,五次,六次,100次握手。
06:48
啊就没有必要了,但是你要说不进行三次,进行一次或两次呢,这个风险又很大,比如说呢,一上来说,哎,说你好,我是宋永康发过去了,他还没回复。这时候就可能对方是不是不在呀,哎,这就一次呢,其实这个风险就很高啊,那一次发过去以后呢,他接到了,他说诶我是孙悟康华啊,说我知道你是孙文康,我是马云,回来以后呢,我这又没回复了。
07:11
哎,他可能想,哎,那你到底是现在还在不在呀,哎,他也有点担心,也就是说呢,我们一次握手,两次握手去握做判断的话呢,可能不保险啊,只能达到百分之七八十的这样的一个确定性,那三次握手的话呢,就可以达到很高的概率99%了,所以我们三次握手就OK,既兼顾到这个,呃,在不在这样一个场景,同时又兼顾到这样的一个效率问题,不用握太多次手啊,握了半天还不进行通勤是吧,浪费呢,光握手了啊行这呢我们就提到一个握手机制。啊,这个握手的话呢,哎,来保证我们这次连接呢是可靠的。这里提到一个可靠的。啊,那再接下来,那么既然是一个可靠的了,我们建立连接以后,咱们就可以在使用TP协议的时候呢,进行大数据量的一个传输,啊,大数据量的一个传输,那传输完毕以后,我们需要去释放一建立的连接。
08:10
啊,整个这个过程的话呢,其实比较重,哎反应过来呢,就是效率相对比较低,但这个效率低呢,你是相较于这个udp来讲叫效率低的啊,所以单纯看呢,你可能还看不出来什么叫效率低或者高啊,你说这个女生长得不好看,那你肯定有对比是吧,你对比没对比你咋知道不好看呢,你像在这个部队里边待久的,看谁都好看是吧?啊哎,这呢效率低这个呢是相对于他来讲啊,那下边呢,我们看下这个udp,这个udp啊跟他应该说呢,正好是种互补关系,哎,我们将数据啊原目的啊目的地封装进数据包。哎,不需要建立连接,这呢是它的一个特点,我们上边那个是需要建立连接的,正因为它不需要建立连接,所以我们说这个udp啊,它是一个不可靠的,正好跟它对应,这个udp呢是一种不可靠的连接,它呢,呃,把这个数据包啊叫数据包啊,数据包啊都可以限制的大小在64K以内啊,64KB以内,那你可以数据呢,要是多的话呢,你可以发不止一个数据包了,给发很多的数据包啊,它的特点呢,就是不管对方是不是准备好啊接收方,哎这个收到他也不确定啊,所以他整个来看呢,就是一个不可靠的。
09:31
就是我这块呢,没有提前的握手,我上来呢就一顿发啊,所以呢,它是不可靠的啊,不需要建立连接,哎,这个发送完以后的话呢,也无需去释放资源,那相对来讲它的开销就比较小,哎这样来看,它相较于我们的TCP来讲,效率呢就比较高,速度呢就比较快。嗯,这个呢,我们举实际的例子来说啊,嗯,你想想我们实际当中什么样的情况会用到这个udp呢。
10:05
呃,这个你要是这种非成靠的连接呢,还得用它啊,不能让这个数据呢有丢失啊,那udp的话呢,我们主要的点是它的速度要快啊,丢一点数据呢也无所谓,典型的呢,就比如说大家看这个网络视频,比如春晚的时候呢,大家是通过网络去看的这个春晚的这个视频,或者说你现在看某一场比赛啊,非常重要的比赛,其实你是可以接受,中间呢有几帧图没有过来的,因为本身人这个眼睛也有这个延迟啥的,你也看不出来,其实是吧,就丢一点数据没关系,但是呢,你需要呢。不能卡到那儿啊,这个呢,你得正常的这个呃,正常能够给我去播放啊,所以说呢,我们这个udp其实比较适合呢,播放这种视频啊,可以呢,去丢一些数据啊,是不可靠的,但是呢,我们希望它呢速度尽可能快一些,那对应呢,要求比较高的说,不能丢一些具体的数据了啊,我们就得用这个TCP的啊这样的方式,那要生活中的例子的话呢,你看我这下边也写了。
11:06
说TCP呢,就类似于生活中打电话,那确保对方都在,在了以后呢,诶形成一个通路了,哎,我这块说你那边接,你那边说我这边接,这就是打电话的一个情况。那udp呢,就类似于发送短信,发送电报,尤其是垃圾短信啊,就是从一个这个基站这块呢,获取了你这个电话号码以后,然后他这块呢,拿一个呃,具体的软件啊,疯狂的去发发这个垃圾短信,他不管说你这个手机号呢,用着还是没用着,是这个呃欠费了还是关机了,不管他就一顿发,诶只要你在,你在那就接受,不在不在就拉倒,那就丢包了。啊,那就类似于我们生活中的这个发送短信这样的一个行为。啊,那相对来讲这种哎跟我们这个TCP确实呢是有区别的啊,这个大家呢关注一下啊,那其实还可以呢,想象一个生活中的例子,就是在这个军事上的话呢,呃,包括现在俄罗斯呢,也经常这样讲啊,美国呢,这不是建立全球的这样导弹防御系统啊,包括呢,就在俄罗斯这家门口也都建立了,然最近呢,听说这俄罗斯又出来一个比较新型的一个导弹啊,叫什么导弹来着啊,就是这个船这个速度非踌啊啊速度快的话呢,这个拦截就有困难,而且的话呢,诶俄罗斯想好了,就如果真要跟美国打的话呢,就在美国的这边这边啊整几个潜艇过去,然后同时呢发送多个导弹,哎,多个导弹同时,比如说我同时发100个啊,100个要不够再来1000个是吧?哎,那你再去拦的话呢,同时这么多拦起来其实就有困难了。
12:40
啊,就是每一个呢是导弹,其实大家呢,就可以理解成udp当中的一个数据包,哎,这一个数据包当中都独立的记录了我们这个数据就是弹药啊,哎,然后呢,从哪发出来的,然后我要打哪个位置啊,每一个数据包当中都记录了啊,那这呢是不可靠连接,也就是说呢,这个根本不用握手。
13:02
啊,你总部至于发个导弹,华盛顿说,诶,我我我白宫在这儿呢啊,握一下手啊,确定在是吧?不可能的哈,他就只管发啊,哎,不用跟对方去握手啊,不用建立这种可号连接,只管发就完了,哎,发完以后呢,这块呢,它就打过来是吧?哎,由于这个导弹防御系统呢,它这个防御力也有限哈,你速度快就很难防,再加上你要同时发动多个这个呢,确实就很困难啊,这就是军事上的一种战术啊,叫饱和攻击是吧?包括呢,也说咱们国家呃,有很多淘汰这个飞机说都没有扔,都还在这个维护着,说万一要有哪一天,呃,比如说跟台湾战争了或怎么着了,那就一堆飞机开过去,然后飞机不要了,是吧,然后呢,就直接呢,就是一个炸弹过去了哈,类似于这样的一种形式啊,嗯,那就有点像我们这个叫udp的这样一种协议啊好,那么通过刚才这样的描述,哎,大家呢,你能知道这两种协议呢是不同的,哎也提到了说TCP的三次握手啊,三次握手这是针对我们在建立连接的时候啊,那么在这个释放连接的时候呢,呃,又提到了一个叫四四挥手。
14:13
啊,就是你连接建立完了,数据也发送完了,呃大家呢,就是要关闭连接了,这个呢叫四次挥手,哎三次握手,四次挥手,这个呢在大家呃笔试面试的时候呢,有的时候呢会被问到啊啊有时候会被问到,刚才呢,咱们把这个事儿呢,其实说了一下,哎,我刚才呢描述的一个生活中的场景,其实呢,就哎类似于这里边的这样的一些量啊大家你看我在握手的时候呢,呃,发送了一个这样的一个,呃相当于豹纹一样哈,这呢就像个常量,是一发送给我们的服务器端以后,服务器端返回的时候呢,它这个常量还是一。那表示呢,就是就是我们这个客户端。哎,就还是一,然后同时呢,你返回这X,我这个X加个一啊,相当于我在原有的基础上做个累加,这就相当于是回来了,回来以后呢,呃,你这个sequence这是个Y啊Y我就Y加一,然后这个呃,这又改成C了。
15:10
啊,这就相当于我能够识别你像这个你是一过去的,我再回来可能诶我是孙文康,这个呢回来啊,我知道你是孙文康啊,就是这样的一个这个概念啊,去传输哎,再发送过去,那这个呢就建立连接了,那么在挥手的时候,挥手的时候呢,我们呃还是说一个事情啊,就是一个稍微呃这个这个好理解的一个方式,通常呢,我们这个挥手的时候,当然呢,这里也提到了,说客户端跟服务端呢,大家都可以主动的去挥手。呃,客户端呢,说我现在不想连接了,我想关闭了,哎,客户端可以说这话,服务端呢也可以说。但是通常情况下,咱们服务端不会说这话的啊,因为服务器的话呢,通常咱们24小时都开着,大家呢随时可以通过客户端呢去连接服务器。哎,不能说晚上这个三点你睡不着了,说想看下这个新闻,一看新闻服务器说说我也睡了,嗯,不会的啊,服务器呢,会一直都在运行,诶客户端的话呢,是你不想看了,你一关啊退出了啊客户端的断开连接,诶通常一般主都是我们的客户端主动断开连接的啊,所以这块呢,我们这个图也是以客户端为例说明的,客户端的话呢,首先说说我现在想断开连接了,哎,发送了一些基本的这个报文信息,然后这块呢,接收到以后啊,说我我接收到你这块呢想断开链接的信息了。
16:28
哎,就是你反馈一下证明的说啊,我接收到你这块想要关闭的信息了,给返回了。啊给返回了,返回以后第三步啊,在二三的时候呢,我们这个服务器呢,就现在要断开,诶跟你这个客户端的连接了,断开了,断开以后呢,我们这个三呢,发了个信息说我现在已经断开连接了,呃,然后这个四呢,接收到以后呢,再发出去,呃发出去的话呢,他去验证一下这块还能不能接到啊,这样能接到那说明没断开。哎,发出以后没有后话了,那就说明啊,确实是断开了。
17:00
啊,这就提到了1234,我们这叫四次挥手。确保呢,我们这个断开呢,是一个确实断开的这样一个过程啊行,那这个过程呢,大家诶关注一下,下边呢,有具体每个过程里边的一些操作细节啊。啊,其实目前的话呢,你先听一听啊,等到这个后边我们讲这个具体的,呃,网络通信的时候,包括呢,这个像HTP协议等啊,还会再去提啊。行,首先呢,关于这里边儿TCP和udp,哎,大家呢,熟悉一下。
我来说两句