计算机网络基础知识——运输层

OSI的七层协议与TCP/IP的四层协议

OSI的七层协议与TCP/IP的四层协议

IP地址和硬件地址

  • 物理地址是数据链路层和物理层使用的地址
  • IP地址是网络层和以上各层使用的地址,是一种逻辑地址

网络层与运输层

  • 网络层为主机之间提供逻辑通信
    网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
  • 运输层为应用进程之间提供端到端的逻辑通信
    运输层向高层用户屏蔽了下面网络核心的细节,使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。

协议端口号(protocol port number)

  • 协议端口号简称为端口(port)
  • 运输层收到IP层交上来的运输层报文时,能够根据端口号把数据交付应用层的目的应用进程
  • 端口号只具有本地意义,标识本计算机上应用层中各个进程在和运输层交互时的层间接口

传输控制协议TCP

特点

  1. 面向连接的运输层协议:先建立连接,用后释放连接
  2. 一条TCP只能连接两个端点:点对点通信
  3. 可靠交付:无差错、不丢失、不重复、按序到达
  4. 全双工通信:通信双方都可以发送和接受数据
  5. 面向字节流:TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流

TCP的连接的端点——套接字(socket)

端口号拼接到IP地址即是套接字。
套接字 socket = (IP地址:端口号)

TCP报文段的首部格式

TCP报文段的首部格式
  1. 首部的前20个字节是固定的,后面4n字节根据需要而增加的选项(n是整数)
  2. 所以,TCP首部的最小长度是20字节

介绍在TCP的握手挥手过程中示例用到的五个字段(注意大小写):

  1. 序号(seq):TCP传送的每一个字节都按顺序编号,序号字段值指的是本报文段所发送的数据的第一个字节的序号
  2. 确认号(ack):期望收到对方下一个报文段的第一个数据字节的序号
  3. 确认ACK(ACKnowledgment):ACK=1时确认字段有效,在建立连接后所有传送的报文段都必须把ACK置1
  4. 同步SYN(SYNchronization):SYN=1表示这是一个连接请求或连接接受报文。SYN=1而ACK=0时,连接请求报文段;SYN=1和ACK=1,连接接受,同意建立连接。
  5. 终止FIN:用来释放一个连接。FIN=1表明已经发送完成,要求释放连接。

TCP连接建立——三次握手

TCP连接建立的三次握手
  • 第一次握手,A->B:SYN=1而ACK=0时,发送连接请求的报文,TCP规定,SYN=1的报文段不能携带数据,但要消耗掉一个序号。初始的序号为seq=x。
  • 第二次握手,B->A:SYN=1和ACK=1,发送确认同意建立连接,确认号ack=x+1,自己的初始序号seq=y。
  • 第三次握手,A->B:再次向B确认ACK=1,确认号ack=y+1,当前序号seq=x+1。TCP规定,ACK如果不携带数据则不消耗序号,这种情况下,下一次A向B发送数据报文段的序号仍旧是seq=x+1。

为什么需要三次握手?
直观上看似乎第三次的握手是不必要,因为两次的握手,一来一往,已经可以建立起连接。那么A为什么还有发送第三次确认呢?主要是防止已经失效的连接请求报文又再次传到B,假如这种情况发生,在没有第三次握手机制下,B会以为A又一次创建连接,而实际上,这次连接请求报文是由于各种原因导致的A没有收到确认信息而再次重发的报文,B创建连接后会一直等待下去。现在有了第三次握手机制,B收到连接请求报文后,发送确认,A不理睬,B不会创建连接了。

TCP建立连接的四次握手(三次握手是重点,这里的四次握手仅仅是一个扩展,了解一下即可)
上面的三次握手中,B发给A的一次握手可以拆分为两次握手,先发送一个确认的报文段ACK=1,ack=x+1,再发送一个同步报文段SYN=1,seq=y。这样就成为了四次握手,效果与三次握手是一样的。

TCP连接释放——四次挥手

TCP连接释放的四次挥手
  • 第一次挥手,A->B:发送释放连接的报文段,FIN=1,seq=u,A停止发送数据。TCP规定FIN报文段即使不携带数据,它也消耗掉一个序号。
  • 第二次挥手,B->A:B发出确认ACK=1,ack=u+1,seq=v,此时B可以继续发送数据,若B发送数据,A仍要接收。
  • 第三次挥手,B->A:如果B没有数据继续发送,B向A发送要求释放连接的报文段,FIN=1,ACK=1,ack=u+1(仍要回复上次的确认号),seq=w(第二次握手后可能又发送了一些数据)。
  • 第四次挥手,A->B:A向B发送确认报文段,ACK=1,ack=w+1,seq=u+1。B进入关闭状态。

四次握手后,需要经过时间等待计时器设置的2MSL(MSL是最长报文段寿命,RFC793建议设为2分钟,当然可以根据网络实际情况调整更小的值。),A才进入关闭状态。首先,保证A在最后一次挥手发送的ACK报文段能够到达B,如果丢失可以重发;另外,保证此次连接中所产生所有报文段可以从网络中消失,在新的连接中不会受到旧的报文段,尤其旧的连接请求报文段干扰。

TCP拥塞控制

基于窗口的拥塞控制,发送方维持一个叫做拥塞窗口cwnd(congestion window),拥塞窗口大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。

拥塞窗口的变化:

  1. 慢开始。当主机开始发送数据时,由于并不清楚网络的负荷情况,所以如果立即把大量数据字节注入到网络,那么就有可能引起网络发生拥塞。慢开始是由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。一般拥塞窗口成倍数增大。
  2. 拥塞避免。让拥塞窗口缓慢增大,每次增加1,而不是慢开始的成倍数增大。拥塞避免的“加法增大”,拥塞窗口按线性规律缓慢增长,比慢开始增长要缓慢的多。
  3. 快重传。要让发送方尽早知道发生了个别报文段的丢失。要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认。另外,快重传规定发送方只要一连收到3个重复确认,就知道是否存在没有收到的报文段,如果存在这样丢失的报文段,应当立即进行重传(即“快重传”)。快重传可以让发送方不会因为网络中个别报文的丢失误认为出现了网络拥塞,减小拥塞窗口。
  4. 快恢复。当网络出现拥塞时,慢开始会将拥塞窗口设置为1后,重新根据网络情况动态增大。快恢复开始时设置一个相对大的拥塞窗口初始值,网络发送方在网络拥塞之后快速恢复。

应用层的域名系统DNS

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