《计算机网络-自顶向下方法》学习总结-1

来源:互联网 发布:pets考试有用吗 知乎 编辑:程序博客网 时间:2024/06/03 17:26

最近回炉重造开始重新学习计算机网络,一个阿里的程序员给我推荐了这本,读了下,感觉不错,写一下自己的总结。


整体架构

  • 应用层

    我们可以把整个互联网协议理解为一个分了多个层的协议簇,这些协议都遵循一个原则:可逆(即可解析),从最上层的应用层开始讲起,大概就是平时我们做开发所接触到的,各种协议。这些协议依赖于下面的四层,即:传输层,网络层,数据链路层,物理层,操作系统为我们封装了底下的四层。我们做一个客户端与服务器通信的应用程序,他们通信的基础就是依赖于我们做的应用程序运行一些操作指令集,为我们打开下面的四层的连接,发送数据。我们将这种操作集又称为应用程序接口。
    许多这样的操作集API被设计出来,最常见的:套接字接口,传输层接口,以及Stream.
    同时,应用层的各种协议也在近年来不断增多,但这些的原则就像我上面所说的,都遵循一个可逆原则。常见的应用层协议:HTTP,SMTP.FTP,TELNET,DNS,IGMP,关于这几种协议具体内容,自行百度,我这里就不废话了。

  • 传输层

    这些应用层的协议使用传输层提供的服务来通信,传输层协议最常见的有三种:TCP,UDP,SCTP.其中TCP面向连接,通过计算握手交换的字节数,提供可靠字节流传输。UDP面向报文,保留报文边界,面对小的报文简单而速度。SCTP的话,TCP,UDP结合功能,主要针对不但需要可靠性,而且即使网络层发生错误也需要保持连接不断开的应用。

    由于网络层是不可靠的,如果应用层需要可靠性,我们需要使传输层变得可靠,可以通过在传输层加入查错控制来实现。主要针对4个方面:发现并丢去破坏的分组,记录丢失分组并重传,识别重复分组并丢弃,缓存区失序分组直到丢失的分组到达。具体的实现,我们可以通过对每个分组中加入序号字段,当分组被破坏时,接受方通知传输层通知发送发传输层利用序号重传分组。

    流量和查错控制组合:在发送端,在分组准备发送时使用缓冲区空闲位置号码x作为分组的序号,当分组被发送,一个分组的备份被存在内存位置x,等待来自另一端的确认,当被发送分组相关确认到达后,分组被清除,内存位置空闲出来;在接受端,当待遇序号的y的分组到达时,他被存储在内存位置Y上,直到应用层准备好接受。这时发送一个ACK表面分组y的到达。
    滑动窗口:缓冲区由一组片段代表,称为滑动窗口。详情:http://www.cnblogs.com/woaiyy/p/3554182.html

    整个5层架构中,涉及到最多的就是关于,长连接与无连接,封装与解封装。未完待更新。。