计算机网络
-
三十二、传输层篇-端口那些事儿
上篇文章说到,网络层的作用范围是主机到主机,而传输层的作用范围细分到了主机中的应用进程到应用进程。 一台主机上可能会同时运行多个应用进程,而传输层就是用端口号来区分同一个主机上不同…
-
三十三、传输层篇-既生瑜何生亮:UDP和TCP的对比
亲爱的读者朋友们,上一篇文章讲述了端口那些事儿,本篇文章直击传输层的两大主角UDP和TCP,我们通过UDP和TCP的对比来学习UDP协议,并且给TCP协议的学习做好铺垫,本文知识点…
-
三十四、传输层篇-擒贼先擒王:详解TCP之首部格式
TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分,而TCP的全部功能体现在它首部中的各字段的作用。TCP首部比UDP复杂得多,完整的…
-
三十五、传输层篇-TCP之三次握手
使用TCP协议进行通信的双方主机,在进行数据传输之前,必须使用“三次报文握手”来建立TCP连接,TCP连接建立成功后才能进行数据传输,数据传输完成后必须使用“四次报文挥手”来释放T…
-
三十六、传输层篇-TCP之四次挥手
挥手,即告别的意思,当应用程序完成通信后,还需要关闭它们之间的 TCP 连接。是的,我们不会无限期地保持连接状态。如果我们从不释放它们,那么所有的端口很快都会被占用。 提到告别,想…
-
三十七、传输层篇-packetdrill工具
如何才能真实模拟出来我们之前所学的三次握手和四次挥手的过程呢?本文通过packetdrill工具来实现三次握手、数据传输、四次挥手整个过程的模拟。 本篇有点难度,笔者也处于摸索状态…
-
三十八、传输层篇-TCP之流量控制
一般来说,我们总是希望数据传输得更快一些,但是往往事与愿违,如果发送方把数据发送得太快,接收方就有可能来不及接收,继而丢弃数据。 所谓流量控制,就是让发送方的发送速度不要太快,要让…
-
三十九、传输层篇-MTU和MSS
MTU是一个老概念了,是属于以太网数据链路层的概念,而MSS是新的概念,由于MTU和MSS概念都十分重要,且容易混淆,为了讨论清晰,单独拎一章节来讨论它们俩。 首先我们要说明下讨论…
-
四十、传输层篇-TCP之拥塞控制
相信读者朋友们看到这个标题后,不禁会想到之前的文章提到了TCP之流量控制,而本文要说的拥塞控制又是什么?跟流量控制有啥不一样?它又有哪些值得我们学习的呢?不得不说,拥塞控制比流量控…
-
四十一、传输层篇-TCP之超时重传时间选择
问一个问题,TCP中的超时重传,到底多久重传才合适? 超时重传时间的选择是TCP最复杂的问题之一,下面我们来看看具体复杂在哪里,以及推荐的计算方法是什么。 一、RTO选择的复杂性 …
-
四十二、传输层篇-传输层结语篇
本篇文章作为正序中传输层篇的最后一篇文章,对可靠传输机制进行一个总结,其次介绍下为了提高传输效率而产生的:累计确认、捎带确认以及Nagle算法,最后的最后捎带介绍下其他三种传输层的…
-
四十三、应用层篇-概述
亲爱的读者朋友们,历经千辛万苦我们来到了最高层:应用层,此时我们可以小小地自豪一下,毕竟从第一篇到这一篇真的很不容易,笔者已经写了快七八个月了。下面两个月,我们会着重攻克掉应用层,…
-
四十四、应用层篇-DHCP协议
今天我们正式来到了应用层,第一个我们先来看下DHCP协议。 我们知道IP地址极其重要,IP地址分为公网IP地址和内网IP地址,前者是花钱申请的,数量有限;后者是免费的,仅用于内网使…
-
四十五、应用层篇-幕后功臣DNS(上)
DNS可以说是最被我们低估和忽略的一个协议或服务,所谓大道至简,越是感受不到它的存在,才越体现它的厉害,本篇文章来介绍我们上网的幕后功臣:DNS。 由于篇幅问题,将一篇拆为了两篇,…
-
四十六、应用层篇-幕后功臣DNS(下)
学习了理论怎么够,我们继续发车,通过一些命令和抓包来实际看看域名解析的奥秘。 七、nslookup命令 如何查看域名对应的IP地址呢?除了使用ping命令外,如果需要获取更多的信息…
-
四十七、应用层篇-古老的FTP协议
FTP协议早在1971年就出现了,而我们学习过互联网的历史,互联网前身Arpanet网在1969年才出现,仅仅两年,FTP协议就横空出世,到现在还在普遍使用,可想而知这个协议的厉害…