前言:

这周开始学习分层网络模型的第三层,传输层。

Transport/Reliability:

  • Transport Layer

TCP层的目的是补偿IP层中可能出现的错误,并充分利用可用资源。由于IP层是有可能丢失数据的,因此TCP层会保存一份数据拷贝,不断的重发数据包直到收到确认应答,如果耗时太长(hop数过多),也将重新发送。

TCP的原理大致是这样的:数据在传输数据时会分成很多个packets(包),分开发送。我们不断地重复发送过程直到从目的端收到acknowledgement(确认回复),如果途中有出现数据丢失的情况,那么会一直重复发送直到收到目的端的确认为止。

因此TCP的工作其实就是确保所有的packet(包)都能被目的端接收。

IP不被要求能够进行Storage(存储),就像路由器不会进行任何存储,只是尽快的来回传输。但我们也需要有Memory(内存)来存储这些数据包,以便我们重传,所以电脑或手机通过网络发送数据时,它就承担起存储副本的功能,而不是网络本身来存储。

在20世纪80年代后期,有人预测因特网将会消亡,确实随着NSFNet的出现,接入的计算机数目增加导致网速越来越慢,网络很难继续支撑。全靠Van Jacobson,他提出了Slow Start(慢启动)算法,解决了网络拥堵问题并拯救了互联网。

接下来是关于他的一段采访。

  • Van Jacobson - Slow Start Algorithm

cwnd(Congestion Window,拥塞窗口)是一个状态变量,它表示无需等待确认应答就可以继续发送数据包的最大数量,其大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。
慢开始算法的思路就是,避免一开始就发送大量的数据,换成先试探网络的拥塞程度,再由小到大逐渐增加拥塞窗口的大小。

  • The Domain Name System

DNS(Domain Name System,域名系统)是万维网上作为域名与IP地址相互映射的一个分布式数据库,能够使用户只需记住更加友好且有意义的字符串域名,域名通过解析再得到IP地址。毕竟数字IP对人类来说不怎么友好,显然,记住一串有意义的英文或者英文缩写的组合比记一串数字更加容易也更加直观。

  • TCP Wrap Up

总而言之,TCP主要就是弥补IP层所做的工作的不完美之处。例如:数据到达时,可以不再是无序的;TCP使得数据在发送端储存了拷贝,如果没有收到ACK就会重复发送,确保数据不会丢失。

小结:

Internet History, Technology, and Security(week6)——Technology: Transport Control Protocol(TCP)的更多相关文章

  1. Internet History, Technology, and Security(week7)——Technology: Application Protocols

    Layer 4: Applications Application Layer TCP提供了“a reliable pipe”(一个坚固的水管)连接用户和服务器,确保了数据能准确不出意外地传输,所以A ...

  2. Internet History, Technology, and Security(week5)——Technology: Internets and Packets

    前言: 之前都在学习Internet的历史,从这周开始,进入到了Internet技术的学习. Layer1: Link Introduction / The Link Layer 80年代之前,主流网 ...

  3. Internet History,Technology,and Security -Transport Control Protocol(TCP)(Week6)

    Week6 Technology: Transport Control Protocol(TCP) Welcome to Week 6 of IHTS. We are in our second we ...

  4. Internet History, Technology, and Security(week1)——History: Dawn of Electronic Computing

    前言: 第一次进行课程学习,在反复观看视频和查找字典翻译理解后选出了视频中个人认为较重要的概念,以下并不按照逐句翻译,中文概括大意余下自由发挥,对老师想要告诉我们的历史有一个初步的了解,顺便锻炼以下英 ...

  5. Internet History, Technology, and Security(week2)——History: The First Internet - NSFNet

    前言: 上周学习了<电子计算机的曙光>,对战时及战后的计算机的历史发展有了更丰富的了解,今天继续coursera的课程,感觉已经有点适应了课程的节奏(除了经常有些奇奇怪怪的词汇看都看不懂@ ...

  6. Internet History, Technology, and Security(week8)——Security: Encrypting and Signing

    Hiding Date from Ohters Security Introduction Alice and Bob是密码学.博弈论.物理学等领域中的通用角色之一.Alice(代表A)和Bob(代表 ...

  7. Internet History, Technology, and Security(week9)——Web Security

    Secure Web Connections: Security Public/Private Key - Secure Sockets 凯撒密码容易被破解,后来人们发明了公钥和私钥,由于私钥一定是要 ...

  8. Internet History, Technology, and Security(week4)——History: Commercialization and Growth

    Explosive Growth of the Internet and Web: The Year of the Web 1994年后,由NCSA的老员工们构成的Netscape(网景)的成立.Ne ...

  9. Internet History, Technology, and Security(week3)——History: The Web Makes it Easy to Use

    前言: 上周学习了第一个网络NSFnet,美国国家科学基金会(National Science Foundation,简称NSF)在全美国建立了6个超级计算机中心所互联的一个网络,这周继续学习网络的发 ...

随机推荐

  1. centos7下执行firewall-cmd显示ImportError: No module named 'gi'

    centos7 安装tomcat 及问题处理(No module named 'gi')(Job for firewalld.service failed because the control) 2 ...

  2. Mailx安装与使用

    1.卸载sendmail与postfix yum -y install mailx 2.安装mailx yum -y remove sendmail postfix 3.配置mail.rc vim / ...

  3. 多线程15-ReaderWriterLockSlim

        ));         }         );                     rwl.EnterUpgradeableReadLock();                     ...

  4. [转帖]Oracle dba_objects和all_objects 最大的区别

    Oracle dba_objects和all_objects 最大的区别 原创 Oracle 作者:maohaiqing0304 时间:2015-08-14 15:07:18  9281  0   链 ...

  5. QT linux下显示中文的问题

    如果中文显示为乱码,那么是字符集不对. 应该设置字符集: QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK") ...

  6. oracle系统视图SQL语句整理

    -- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图 -- DBA_TABLES意为DBA拥有的或可以访问的所有的关系表. -- ALL_TABLES意为 ...

  7. Python 入门之 闭包

    Python 入门之 闭包 1.闭包 (1)在嵌套函数内使用(非本层变量)和非全局变量就是闭包 (2)_ closure _ 判断是不是闭包 def func(): a = 1 def foo(): ...

  8. ASP.NET的面包屑导航控件、树形导航控件、菜单控件

    原文:http://blog.csdn.net/pan_junbiao/article/details/8579293 ASP.NET的面包屑导航控件.树形导航控件.菜单控件. 1. 面包屑导航控件— ...

  9. flask之上下文管理

    简单来说,falsk上下文管理可以分为三个阶段: 1.请求进来时,将请求鞋底的相关数据放入上下文管理中进行管理 2.在视图函数中,要去上下文管理中取值 3.请求响应之后,要将上下文管理中的数据清除 详 ...

  10. pip和pip3的区别

    安装了python3之后,会有pip3 1. 使用pip install XXX 新安装的库会放在这个目录下面 python2.7/site-packages 2. 使用pip3 install XX ...