• 《计算机网络 自顶向下方法》 第1章 计算机网络和因特网


     
    什么是协议
    一个协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及报文发送和/接收一条报文或其他事件所采取的动作
    关键点:内容组织方式、交互次序、响应
     
    HTTP 协议概述
    由于互联网的各个端系统需要通信,那么就需要通信协议,以保证通信能够正常运行
    HTTP 协议中,端系统的角色有种,分别是 客户端 和 服务端
    客户端向服务端发起请求,服务端响应客户端的请求
    客户端必须按规定的格式向服务端发起请求,服务端才能准确识别该请求信息,作出响应
    同理,服务端也要按规定的格式响应请求
    客户端发起请求的格式:
    请求行:明确请求类型
    请求头:客户端向服务端提供一些客户端本身的信息,或者告诉客户端自己希望接收到什么样(类型、
    编码等)的响应消息
    请求正文:请求的其他信息
    服务端响应请求的格式:
    状态行:表示响应的类别(成功、失败、重定向等等)
    消息报头:服务端向客户端提供一些服务端本身的信息,或者对应于状态行的其他附加信息
    响应正文:客户端请求的资源
     
     
    分组交换和电路交换
    分组交换,即,将要发送的报文切割成一个个的小组,独立发送
    电路交换,在两个端系统之间要通信之前,会建立好专门的通信通道
    他们两个最大的区别就是,分组交换中,资源不预留,电路交换是预留资源的
    其中,更有效率的是分组交换,因为,电路交换因为预留了资源,而且在通信结束之前,这些资源不会被释放给其他通信使用,而现实情况中,在通信期间,用户一般不会长时间地充分使用分配的资源(充分使用资源的时间比率通常很小,可能低于 10%),这就造成了资源的浪费,对并发量的影响非常大
    举个简单的例子:
    一个 10M 的宽带,在特定的 30s 内被某人独享,但是这个人只在某 5s 中传输了数据,那么就有 25s 的传输时间被浪费了,在这 30s 内,就少传输了 25s*10M 的数据
    而分组交换不存在这样的问题
     
    网络分层
    网络分层就是将传输数据所需要做的事情,按功能划分,分为几个模块(层),使整个结构更清晰,也更利于维护和扩展
    网络分层中,数据封装的形式如下:
    数据发送端:将上一层传输过来的所有数据当成信息内容本身,然后本层在上一层的基础上,加上这一层完成任务所需要的数据(头部信息),然后传给下一层
    数据接收端:将下一层传输过来的数据分为两部分,头部和信息本身,拿出头部(对应于数据发送端的该层添加的头部信息)进行解析,然后将传给上一层
     
     
  • 相关阅读:
    extern "C" 分析 转
    Python标准库3.4.3webbrowser21.1
    rxtx java lib /var/lock issue
    list installed package & remove installed package & find package from repository Archlinux
    eclipse initialize
    add repo for CentOS
    RPMforge for CentOS
    Install Core Development Tools
    [Qtcreator] CMake + Multiple Build configuration
    list installed package & remove installed package & find package from repository
  • 原文地址:https://www.cnblogs.com/stone94/p/10888888.html
Copyright © 2020-2023  润新知