前言:

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

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就会重复发送,确保数据不会丢失。

小结:

最新文章

  1. 利用fsockopen可实现异步成功访问
  2. QT学习笔记2
  3. VirtualBox4.3.12 Centos6.5-i386 设置共享文件夹
  4. MyEclipse------各种问题解决方法
  5. Android,visibility属性
  6. hdu----(1528)Card Game Cheater(最大匹配/贪心)
  7. 文成小盆友python-num7 -常用模块补充 ,python 牛逼的面相对象
  8. 7.1.1.关闭WebSocket连接
  9. Python爬虫小白入门(五)PhatomJS+Selenium第二篇
  10. 2017携程Web前端实习生招聘笔试题总结
  11. JAVA实用案例之水印开发
  12. c# word文档的操作
  13. C# 中一些类关系的判定方法
  14. win10 系统下无法正常安装 Anaconda3
  15. 反射获取Class对象
  16. Java基本类型占用字节数(或 bit数)
  17. 【转载】Latex定制章节编号格式和计数器
  18. python打印朱莉娅集合
  19. mysql-cluster 环境安装&配置
  20. 2017-2018-2 20165207实验二《Java面向对象程序设计》实验报告

热门文章

  1. 15.永恒之蓝exp----
  2. 20191128 Spring Boot官方文档学习(9.4-9.8)
  3. Nginx 的root和 alias
  4. 逆序单词 HIhoCoder 1366 字典树
  5. [LeetCode] 65. 有效数字
  6. 小白学Python——Matplotlib 学习(2):pyplot 画图
  7. px-em-pt等字体的不同
  8. flask之上下文管理
  9. 各种IE(IE6-IE10)兼容问题一行代码搞定
  10. 使用Eclipse-Maven-git做Java开发(3)--Eclipse的安装和配