自从参加了工作,对于网络底层协议的透彻了解越来越在工作中占大比例,而以往在关于网络编程上,计算机网络基础也仅仅停留在who是tcp,who是http的层面,真正网络传输的一整套流程和模型没有基础性认知,为此专门花时间将新学习到的计网知识记录于此,以便自己巩固和帮助他人。

  • 分组交换/包交换
    如今所有的计算机网络都是分组交换了,将计算机之间交换的数据按包package进行拆分,然后再到网络中传输,这种机制有个最大的好处就是节省网络搭建成本——以传统电话网(电路交换)为反例,我们在偏远地区拨打电话,不是每次都能听到嘟嘟的响声(其实没有跟目标节点建立电缆连接),以为本地电缆已经饱和,无法再提供给你,等到其他人挂电话,电缆空出来,你才能获得相应的连接。而分组交换,将网络覆盖区中所有计算机的传输数据都共享同一条电缆,因为其数据包上各自包含了自己的目标地址,所有会以数据包为基本单位进行路由。当然,还有其他的好处,比如能进行包的检验。

  • 主机网络层

    在tcp/ip网络模型中,处于底层的网际层,负责将所有数据通过物理设备传输到目标节点上。而所谓的数据,无非是二进制的数据位,0010101001,在电缆传输中,将其转换成电磁波,通过线缆移动来传输数据。当然了,如果用的是wifi,那就是将数据位转换成了无线电波,在空气中移动。

  • 网际层IP

    其实可以理解为路由,寻址层,就是寻找目标计算的相关逻辑层,IP数据包,每个数据包上包含了首部、源地址、目的地址和数据body。IP协议又分为IPV4和IPV6,地址长度从32位编导128位,一般v4的数据包大小在几十B到8KB左右,而V6似乎有点变态,能达到4G。IPV4由4个字节组成,每个字节最高位转换成十进制是255,IPV6由16个字节组成,分成8个区块,每个区块是4个十六进制的数字。

  • 传输层
    TCP协议中,为了保证可靠性,要解决数据包的破坏、丢失和传输顺序。如果数据包从源TCP层中发出,传输到目标TCP层时,检查机制发现数据包被破坏或者丢失,就原路返回到源TCP层,进行数据包的重传。所以TCP协议要置于ip协议之上,才能在连接的两端确认接收IP包的情况,进行重传和检查顺序等。对于java程序员来说,只需要认识TCP和UDP以及建立在其上的应用层协议就可以了。这里提到UDP,可能大家会觉得这是很不可靠的东西,但是在例如视频、直播类的传输中就是使用UDP,原因我自己总结有:用户对数据完整度不敏感,丢失一两个数据位对用户来说可能感觉不到;再者如果使用的是TCP,当出现丢包使用,TCP为了保证完整性和顺序,要等待所有包接收完毕才传到应用层,这对于用户来说是很致命的,假如你观看一部电影,视频加载因为后面一段数据位丢失而导致前面加载好的内容不能先观看,真是fuck;最后UDP还能通过一个方案,比如纠错码等来解决丢包等问题。

  • 应用层
    网络数据从TCP传输上来后,如何变成用户想要的效果呢,比如用户想看到一张图片,而TCP传过来的只是一串数据流,那么进行这个转换工作的,就是应用层干的。在网络数据的传输中,应用层是最费时间的(传输数据成果的情况下)。我们可以自定义应用层协议,解析不同数据流成为我们想要的效果。很多公司内部自定义的协议,都是基于http的,这样就可以复用http应用层的解析成果,然后再扩展自己想要的功能。


再来聊聊网络中的广播,这个功能场景似乎很重要,但平时接触到却没去思考这是它的功能。比如在一个本地网络中接入一台笔记本电脑,想象成脸上wifi,那么这台设备会向本地网络中所有节点发送一次广播,寻找本地网络的DHCP节点。只有本地网络中的DHCP服务器(一般是路由器)会理他,给他回应这台笔记本今后在这个本地网络中的标志(内网IP地址),可能还附带了本地的DNS服务地址之类的。


传闻解决IPV4燃眉之急的NAT技术,内网的设备,如上文的笔记本电脑访问www.baidu.com,在请求数据包经过NAT路由器的时候,其IP报文上的源地址改成了路由器的外网地址,然后再请求到百度的首页服务器。百度返回的数据包,只能达到路由器,路由器中经过内部的映射表,入站连接路由到内网对应的服务器上。

TCP/IP分层模型与网络认知相关推荐

  1. 使用分层网络模型的两个优点是什么_从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了...

    从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了​mp.weixin.qq.com 前言 今天和大家一起谈谈"网络",之前写的文章可能不太通俗易懂,有人就 ...

  2. 网络七层模型和TCP/IP分层模型

    OSI模型 从上到下 七. 应用层--规定数据的传输协议 HTTP(超文本传输协议-TCP) -- 端口号:80 HTTPS(HTTP+SSL超文本传输安全协议-TCP)--端口号:443 SMTP( ...

  3. 网络基础知识 | 协议 | TCP/IP分层模型

    目录 网络基础知识 网络互联 互联网基础知识 网络的构成要素 网卡 中继器 网桥/2层交换机 路由器/3层交换机 4-7层交换机 网关 协议 分组交换协议 谁来规定协议 协议的标准化 协议的分层 分层 ...

  4. Internet概念与TCP/ IP分层模型

    Internet是世界上规模最大.用户最多.影响最大的计算机互联网络.本模块介绍Internet的概念及TCP/ IP分层模型. 一.Internet的概念 Internet的概念(也可认为是Inte ...

  5. 从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了

    来源 | 网络工程师笔记 前言 今天和大家一起谈谈"网络",之前写的文章可能不太通俗易懂,有人就问我可不可以写些比较容易理解的文章,我想了想那就从头说起吧! 那么什么是网络呢? 百 ...

  6. 信息系统项目管理师教程(第3版)- OSI七层模型TCP/IP四层模型对应网络协议

    一.OSI七层模型: 1.应用层 网络服务与最终用户的一个接口. 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 2.表示层 数据的表示. ...

  7. 【计算机网络】OSI参考模型与TCP/IP分层模型详解(超级详细,三张图完整说明)

    目录 1  基本介绍 2  OSI七层参考模型 3 TCP/IP协议分层模型 4 模型映射关系 5 参考文献 1  基本介绍 OSI(Open System Interconnection)参考模型将 ...

  8. 网络发展背景、TCP/IP五层模型、网络传输基本流程、ip地址与端口概念

    网络基础(一) 计算机网络背景 网络发展 独立模式: (计算机之间相互独立) 网络互联: ( 多台计算机连接在一起, 完成数据共享) 局域网LAN: (计算机数量更多了, 通过交换机和路由器连接在一起 ...

  9. (chap2 TCP/IP基础知识) TCP/IP分层模型的通信流程

    1. 每个分层中,都会对所发送的数据附件一个首部,在这个首部中包含了该层次必要的信息,如发送的目标地址以及协议相关信息. 1.1 数据单位 包 全能性术语. 帧 表示数据链路层中包的单位. 数据报 I ...

最新文章

  1. web前端培训:CSS中单行文本溢出显示省略号的方法
  2. 美团面试失败(Java开发)
  3. 下一次大跃进?将机器人与物联网相结合
  4. 天猫php采集列表,QueryList: QueryList是一个基于phpQuery的通用列表采集类,是一个简单、 灵活、强大的采集工具,采集任何复杂的页面 基本上就一句话就能搞定了。...
  5. 删除隐藏版本信息 版本回退_Git系列之-分布式版本控制Git详解
  6. php select socket
  7. java实现登陆面试题_【Javaweb】笔面试题 ---(1)(示例代码)
  8. asp.net core源码飘香:从Hosting开始
  9. php多条件筛选顺序_php多条件组合筛选
  10. SQL Relay 0.49 发布,SQL 中间层
  11. angular 字符串转换成数字_3种方法搞定Excel中数字大小写转换? 123...变为壹贰叁......
  12. win10软件安装出现错误代码2503/2502
  13. 客户端js服务端互相调用
  14. scala文件通过本地命令运行
  15. 易语言皮肤模块200个_S7200 SMART 模拟量模块种类amp;选型须知
  16. SQL获取当前时间、年、月、日等
  17. Android 使用gson完成Json转map,json转单个对象,json转数组
  18. Ubuntu Tty (字符终端) 显示中文,和字体大小设置
  19. html加页面脚注,javascript – 打印HTML每页脚注
  20. am解调matlab程序,AM调制解调的matlab仿真

热门文章

  1. 提供 Microsoft R Open 和 Microsoft R Server 安装文件的位置
  2. python爬虫新浪,网易,腾讯新闻及评论
  3. ORA-00257: 归档程序错误 Oracle归档报错处理方式
  4. 谷歌浏览器F12开发者工具格式化js代码
  5. 【ES6基础】Symbol介绍:独一无二的值
  6. java中的 r_R在java中代表什么意思
  7. 长垣四中计算机专业分数线,长垣2019年中招录取分数线公布了!
  8. 教你用PS编辑表格 怎样将word表格转为图片格式
  9. PHPWORD 实现单元格内同一行文字设置不同的样式比如不同颜色不同大小粗细是否斜体等等
  10. 查看前端Vue版本命令