剑指offer (4)

  • R4y 
  • 未分类

网络方面的问题离不开 TCP/IP这玩意,所以这次做个详尽的总结

网络

OSI模型

经典的协议栈模型,当属OSI和TCP/IP 这两种。这里的一幅图,很好的展示了这个协议的层次

协议

图片引用自imyalost

OSI模型分为7层, TCP/IP协议是4层,其中对应的关系也在途中很好的体现了出来。

协议栈之所以为栈,因为其工作过程中的自顶而下的逐层封装的特性,这种逐层封装在传输终端也会逐层的解析。所以这种协议模式也成为对等协议,IP(Internet Protocol)

在我们的TCP/IP的协议栈中。具体的情况如下

应用层    http请求                    http请求传输层    TCP/UDP头(端口)            TCP头    http请求网络层    IP头    (IP地址)                IP头        TCP头    http请求链路层    MAC头(MAC地址)                MAC头    IP头        TCP头    http请求

所以协议栈自上而下是逐层封装的过程,各层也是负责其具体的职能

具体的层次之间的职能分共也是如下图所显示的。

作用

图片引用自imyalost

对上图的内容进行总结的话,实际上在传输层实现了端到端的通信,在网络层是实现了点到点的通信,或者说是主机和主机。到了数据链路层,主要的就是控制我们的数据包流向,这里就有了路由协议。

路由是存在于网络层,交换机,和中继器处于数据链路层。

传输层的端到端数据段(segment).网络层是点到点的数据包(packet).数据链路层是网络节点间的通信,数据帧(frame).下面的物理层就是以比特为单位的电平了。

TCP/UDP

  1. TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

  2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
    Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

  3. UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

  4. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

  5. TCP对系统资源要求较多,UDP对系统资源要求较少。

TCP/IP模型的安全性

Q&A

Q: 完全使用TCP的协议是?

A: 这里需要注意的是 DNS 是同时涉及到TPC和UDP协议的,所以这里容易出错

留下点什么吧