UDP TCP

以下自言自语,提建议感激不尽,挑毛病我就不听

UDP与TCP

UDP是个协议。。。

TCP也是个协议。。。

那么这两个协议之间的区别是什么呢?曾经我被问到这个问题,就开始眉飞色舞地侃侃而谈。“UDP就像是个广播喇叭,遵循UDP的数据报发送后,是无连接的,任何接收端都可以收到;UDP又是不可靠的,为什么?广播喇叭里的话,不是谁都听得见的。TCP是面向连接的,就像是两个人打电话一样,也是可靠的。。。”

今天重温TCP与UDP,虽然理解的还是不怎么透彻,但是相比以前,总算是有了进步,记录下来。

UDP

UDP是传输层协议。传输层协议所需要做的工作很多,但是UDP却做了其中最少的工作。UDP得的要传输的数据以后,仅仅在数据的原有基础上,附加了目的端口号,以及其他两个小字段。然后这个极其简陋的数据报文段就被发出去了。在这个过程中,UDP并没有要求发送方和接收方彼此先认识认识,握个手什么的完全没做,因为这个,UDP被称为是无连接的。

紧接着,根据以上原理,可以记录用UDP的优势:

其一,时间控制精确。怎么精确了?毕竟UDP拿到数据后,就只是给数据加上个端口号,就“嗖”的一下,把数据报文段发出去喽!没耽搁时间啊!对于那种对数据何时发送很看重的主儿,这是至关重要的啊!相比于TCP,省去了握握手、等等人的环节,时间已经很精确了。当然了,是有可能数据没送到,也是有可能数据送到不完整,怕这些你别用啊。。。

其二,无需建立连接。这点就是上面加黑的字体,无连接的。那有什么优势呢?建立连接需要时间,需要资源啊。俩人先认识认识握个手不得需要点时间吗?就算是压马路还对鞋子有磨损呢,何况现在俩人见面都需要喝个咖啡厅什么的,高消费,耗资源啊!

其三,没有连接状态(WTF?都不用建立连接了,自然没有连接状态了)。连接状态需要维护很多号啊、参数什么的,不写了,写了也记不住。由此可见,没有连接状态是很大的优势。

其四,开销小。每个TCP报文段的首部开销为20字节,每个UDP报文段的首部开销为8字节。

TCP

面向连接的运输,TCP。

序号(Seq)和确认号(ACK)。这俩个号在TCP报文段中可是很拽的。为什么他俩这么拽呢,因为没有他俩不行。。。数据是由很多报文段运送的,每个报文段都有自己的序号,并且整体来看,这个序号是递增的且独一无二的。比如第一个报文段序号是0,第二个是1000,第三个是2000。。。没错,是递增,未必是差值为1的等差数列。人之立于世,必循其规。有个序号,大家都按照序号来,公平公正公开,谁也没偏袒,有效避免了争斗,维护了世界和平,看吧,序号就是这么有用,就是这么拽!那确认号呢?确认号是接受端返回给发送端的,这个号代表了序号,就是下一个可以发过来的报文段的序号。比如确认号是2000,那发送端如果是个遵纪守法的好公民,就得发序号是2000的报文段,所以确认号也很拽啊。

A:seq=22,ACK=15,data=‘wtf’——>B;B:seq=15,ACK=22+1=23,data=‘wtf’——>A;A:seq=23,ACK=15+1=16——>B

TCP的连接管理。TCP是个靠谱的讲究人。介绍客户端和服务端相互认识,要让他们首先握手,然后握手,最后握手。握手的时候,怎么也得做点什么吧,第一次握手的时候啊,客户端把提前准备的特殊报文段给服务端。这个特殊报文段里有SYN,所以就被大众称为SYN报文段。SYN报文段除了有SYN,还有客户端随机生成的一个初始序号(client_isn),没错,是序号,很拽的序号。

第二次握手了,服务端拿到了客户端的SYN报文段了,想了半天才反应过来,这得表示表示啊!就也发了一个有SYN的报文段,同时,客户端的SYN报文段里有序号啊!序号!需要确认号呀!服务端就给客户端的序号加一,然后做确认号了,ACK!最后,也带上了一个自己的序号。这个报文段叫做SYNACK报文段。

第三次握手的时候,客户端拿到了服务端的SYNACK报文段,一看这事有门啊,就不客气啦,直接带上了序号和确认号,去建立连接了。

图文并茂1


断开连接的过程中,更加体现了TCP的讲究之处,四次告别!足足四次!首先客户端发了个FIN说要断开链接了,然后等服务端消息,这叫FIN_WAIT_1,服务端收到后返回一个ACK说我知道了。这时候,讲究这个特性就提现出来了。客户端这时候不走,人家进入等待,叫做FIN_WAIT_2,收到服务端的FIN后,给服务端返回一个ACK,更讲究的是,这时候了,还不走。客户端进入TIME_WAIT阶段,等个1分钟或者30秒的才缓步离开。

图文并茂2

与此同时的服务端,一听说客户端要走,为了不耽误客户端的时间,赶紧接受FIN并且返回ACK,然后服务端也很讲究啊,进入等待阶段,这个阶段叫做CLOSE_WAIT,服务端在这个阶段发送了FIN,等着接受客户端返回的ACK,然后就断开连接了。

最后我就想了啊,这TCP这么讲究干什么啊?难道就是为了讲究才讲究的吗?这个时候,搜索引擎的强大实力显露无遗。

讲究的三次握手原因:谢希仁版《计算机网络》中的例子是这样的,“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”

来源:知呼,作者:做好自己

讲究的四次挥手是因为TCP有个半关闭状态,假设A.B要释放连接,那么A发送一个释放连接报文给B,B收到后发送确认,这个时候A不发数据,但是B如果发数据A还是要接受,这叫半关闭。然后B还要发给A连接释放报文,然后A发确认,所以是4次。

来源:百度知道,作者:yehua131969

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容