作为一个零基础跨考生,学习的过程中遇到了很多问题,个人喜欢刨根问题和思考,对每个问题也搜集了很多资料,有了自己的理解,以下是我的一些浅薄的问题和个人理解:
1.(现代)一个主机到另一个主机传输一份文件的过程:
①主机A的一个应用(应用层)传给主句B一个1MB的文件
② 传输层的功能有复用和分用,为应用层的文件加上套接字,以识别不同进程(运行的程序)。若使用TCP协议,文件被分为一个个窗口大小的字节段,窗口大小会改变=min{rwnd,cwnd}。对于以太网,每次传送帧不能过长,一个窗口大小为n*MSS,MSS大小=以太网帧最大-TCP头部-IP头部。TCP确认是对一个MSS的段确认。(TCP传送层发送一个MSS大小的TCP段,网络层就不要划片了,分组就是一个TCP分组,TCP确认需要检查的内容在TCP头部,所以每个分组都有TCP头部,而对于网络层划片,只有第一个段有TCP头部,那TCP应答ACK是对一个长段,而考试都是对一个MSS段确认,所以是有TCP头部的)
③网络层用来实现不同网络的传输,跨越不同网的。类似送快递的地址,先送到省,再到市。从超网到一个个子网。重点是路由选择。
④数据链路层,不同协议有不同功能,考试常考几个滑动窗口协议,是可靠传输(这里事使我产生了误解,以为链路层都要这样),以太网使用的是不可靠的传输(现代一般使用)。链路层给传下来的内容加上一些内容实现透明传输,组帧的过程。需要识别链路层有MAC地址,这是点对点传输必须要知道的地址,一个点传到下一个点要知道下一个点的MAC地址。
⑤物理层将数据化为电压信号传出去。
2.数据链路层和传输层的可靠传输
我使用的是王道书,也只听了王道的课,感觉书分类之间并非对等关系。比如数据交换方式有电路交换、报文交换、分组交换,这是一个分类,滑动串口协议有停等、BGN、SR,也是一个分类。但是滑动串口是针对分组交换的,并不是电路交换、报文交换都可以使用。还有网络层要划片成IP分组,但是传输层传送一个mss大小字节段就不需要网络层划片。书编的方式使我困惑了,跨考生太不明白了
除了书的分类令我困惑,书不同章节(不同层次)使用的协议搭配问题也令我困惑:
对于数据链路层有停等、BGN、SR的可靠传输方式,应该点与点之间有连接的,也有ACK应答,应答单位是一个帧。TCP之间是主机和主句的端(进程间)之间有连接的,一个ACK应答一个MSS(比帧小)。
我理解的是两者不是同时存在的 ,以太网的链路层是不可靠的 ,没有使用SR,BGN等协议,提供不可靠传输,但可以由传输层使用TCP协议的保证,使用UDP可由应用层保证。
3.关于点对点和端对端
数据链路层可靠传输就是点对点,我认为一台主机传给一个路由器,一台路由器传给另一台路由器之间是点对点关系,途经的设备是一个点传到另一个点,所以ACK对帧的应答是每个设备之间都会发生的。
TCP可靠传输应答是端对端的,是一台主机的一个进程端对另一台进程端的应答,途经的设备不需要。
......待续