• Home
  • Archives
  • 随笔
所有文章 友链 关于我

  • Home
  • Archives
  • 随笔

HttpTCP系列第一章

发布于: 2018-10-18
更新于: 2023-07-09

历史

  • 从操作模式来说
    • 单机模式操作
    • 网络互连模式

 - WAN[Wide Area Network] LAN[local Area Network]

  • 从发展进程的各种产物
    • 批处理(Batch Processing)利用卡带编程,再放置在专门的读卡机时代,较为出名的故事是比尔盖茨飞机上用卡带编程。  
       - 分时系统【一机多用】与Basic编程语言搭配
       - 计算机间通过通信线路传递数据
       - 实验基于分组交换的网络通信
       - 随着一人一机流行,促进连接异构型计算机的通信网络技术发展,像Email以及WWW[World Wide Web]
       > 而在这些计算机负责交互通信的基础就是协议,类似email,tcp/ip等等

协议

  • 分组交换协议

    把数据切为一个个小包【Packet】进行发送传输,每一个包都会加上一个报文首部,配上源主机地址以及目标主机地址。当接受时再拆开重新拼装成原本的数据。
    这样做有利于避免发送数据时丢失,时间过长,而且可以使得用户先处理收到的数据,避免等待全部数据收到后才能进行处理。

OSI参考模型

由ISO【International Organization For Standards】为了解决各厂商之间通信交互的问题提出了OSI【Open System Interconnection】参考模型,但并未完全使用这个模型,而是它的简化版,但因为这个模型具有参考价值,也更能理解网络交互模型。

  • 各层模型
名字 功能
应用层 针对各种应用场景的协议【email、ftp、ssh等】
表示层 把网络标准交换数据转为需要的表示媒介【图片、voice】当作前端层也可以
会话层 网络连接的连接与断开,理解为session即可
传输层 确保数据传输过程中正确,无丢失等等
网络层 选择路径,向导带数据去该去的地方
数据链路层 传输数据的帧,理解为物理层传输数据的格式
物理层 传输数据的物理媒介【网线等】
  • 传输过程
       对于用户而言,通常就是应用层间的交互,打个比方A要发给B一样东西,首先我们决定用什么协议来进行沟通。
       我们决定用普通话进行沟通【应用层决定协议】在包裹上添加报头,language=zh_CN_PuTongHua
       假如这份东西是照片且为jpg格式,那我们就附上这个数据应该如何表示出来【表示层】同样附上报头,表示这份数据应该以jpg形式表示
       既然要发送,那么我们要决定如何与对方沟通,是发一张照片通话一次,还是直接见面然后一次发送完要发送的照片。【会话层做出决定】
       当会话方式决定后,我们要保证会话是正确的,无损的。需要确认我讲的话,对方是不是全部都听到了,而且没有夹杂其他东西【传输层保证】
       余下三层就是将数据带到该去的地方。路由器严格意义上就是这样的玩意,计算机发送数据给路由器,路由器作为向导,发送给目标机器

  • 优缺点

优点 缺点
将各层模块化,当需要扩展功能时,或则优化某一块时,方便而且高效。 但由于分的太过细化,导致开发的东西太多,每一层的交互也会显得很麻烦,尤其是报头的装载与卸载是一个消耗资源的大头。
HttpTCP系列第一章
/archives/a83aadec/
作者
tyrantqiao
发布于
2018-10-18
更新于
2023-07-09
许可协议
CC BY-NC-SA 4.0
赏

蟹蟹大佬的打赏,大家一起进步

支付宝
微信
  • HTTP
  • TCP
  • 学习笔记

扫一扫,分享到微信

微信分享二维码
leetcode题目详细解答【java版】持续更新
hexo解决方案_持续更新
© 2024 tyrantqiao 本站总访问量次 本站访客数人次 载入天数...载入时分秒...
  • 所有文章
  • 友链
  • 关于我

tag:

  • 复盘
  • 我
  • 规划
  • java
  • 面试
  • 源码
  • 架构
  • Hadoop
  • HTTP
  • TCP
  • 学习笔记
  • IDEA
  • maven
  • idea
  • Java
  • jdk
  • 面经
  • linux
  • 爱情
  • mysql
  • 性能
  • sql
  • Mysql
  • JAVA
  • 技术
  • Redis
  • MQ
  • Spring
  • 数据库
  • TIDB
  • spring
  • unity
  • chatgpt
  • 经验分享
  • 前端
  • redis
  • vue
  • git
  • shadowsocks
  • hexo
  • blog
  • bug
  • 开发
  • 业务
  • jvm
  • 算法
  • MySQL
  • nginx
  • Linux
  • mq
  • db
  • springCloud
  • ssh
  • python
  • 爬虫
  • test
  • vim
  • 影视剧
  • 中间件
  • 事务
  • 性格
  • 音乐
  • 程序员
  • 随笔
  • mybatis
  • 演讲
  • 域名
  • 猫咪
  • 她
  • github
  • 计划
  • 旅游
  • 软件
  • 心理
  • 情商
  • 幽默
  • 才艺
  • 穿搭
  • 编程
  • 排序
  • 查找
  • 缓存
  • 网络
  • 设计模式
  • c
  • 课程设计
  • centos
  • 数学
  • 本网站主题yilia设计者的主页
如果有问题或者想讨论的可以联系[email protected]或者[email protected]