字节一面:“为什么网络要分层?每一层的职责、包含哪些协议?”
Hollis
共 5791字,需浏览 12分钟
· 2021-10-02
01 为什么网络要分层?
Repository(数据库操作) Service(业务操作) Controller(前后端数据交互)
「各层之间相互独立」:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)「。这个和我们对开发时系统进行分层是一个道理。」 「提高了整体灵活性」 :每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。「这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。」 「大问题化小」 :分层可以将复杂的网络间题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。 「这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义。」
「计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。」
02 OSI七层模型
OSI的专家缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力 OSI的协议实现起来过分复杂,而且运行效率很低 OSI制定标准的周期太长,因而使得按OSI标准生产的设备无法及时进入市场(20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来,但基于TCP/IP的互联网已经抢先在全球相当大的范围成功运行了) OSI的层次划分不太合理,有些功能在多个层次中重复出现。
03 TCP/IP 4层模型
应用层 传输层 网络层 网络接口层
04 TCP/IP 4层模型网络协议概览
HTTP 协议(超文本传输协议,网页浏览常用的协议) DHCP 协议(动态主机配置) DNS 系统原理(域名系统) FTP 协议(文件传输协议) Telnet协议(远程登陆协议) 电子邮件协议等(SMTP、POP3、IMAP) ......
TCP 协议 报文段结构 可靠数据传输 流量控制 拥塞控制 UDP 协议 报文段结构 RDT(可靠数据传输协议)
IP 协议(TCP/IP 协议的基础,分为 IPv4 和 IPv6) ARP 协议(地址解析协议,用于解析 IP 地址和 MAC 地址之间的映射) ICMP 协议(控制报文协议,用于发送控制消息) NAT 协议(网络地址转换协议) RIP 协议、OSPF 协议、BGP 协议(路由选择协议) ......
差错检测技术 多路访问协议(信道复用技术) CSMA/CD 协议 MAC 协议 以太网技术 ......
应用层(Application layer)
HTTP:超文本传输协议
SMTP:简单邮件传输(发送)协议
电子邮件的发送过程 如何判断邮箱是真正存在的?
通过 「SMTP」 协议,我将我写好的邮件交给163邮箱服务器(邮局)。 163邮箱服务器发现我发送的邮箱是qq邮箱,然后它使用 SMTP协议将我的邮件转发到 qq邮箱服务器。 qq邮箱服务器接收邮件之后就通知邮箱为“xiaoma@qq.com”的用户来收邮件,然后用户就通过 「POP3/IMAP」 协议将邮件取出。
https://verify-email.org/ http://tool.chacuo.net/mailverify https://www.emailcamel.com/
POP3/IMAP:邮件接收的协议
FTP:文件传输协议
FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接(其它客户服务器应用程序一般只有一条 TCP 连接):
控制连接:用于传送控制信息(命令和响应) 数据连接:用于数据传送; 这种将命令和数据分开传送的思想大大提高了 FTP 的效率。
DNS:域名系统
IP 地址是一个网卡再网络世界中的通讯地址,我们可以把它理解为我们现实世界中的家庭地址。
Telnet:远程登陆协议
SSH:安全的网络传输协议
传输层(Transport layer)
「传输控制协议TCP」(Transmisson Control Protocol)--提供「面向连接」的,「可靠的」数据传输服务。 「用户数据协议UDP」(User Datagram Protocol)--提供「无连接」的,尽最大努力的数据传输服务(「不保证数据传输的可靠性」)。
网络层(Network layer)
网络接口层
数据链路层(data link layer)通常简称为链路层( 两台主机之间的数据传输,总是在一段一段的链路上传送的)。「数据链路层的作用是将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。」 「物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异」
Reference
https://medium.com/@james_aka_yale/the-4-layer-internet-model-network-engineers-need-to-know-e78432614a4f https://www.guru99.com/tcp-ip-model.html https://www.freeccnastudyguide.com/study-guides/ccna/ch1/1-4-tcpip-model/ OSI 七层模型与 TCP/IP 四层模型— https://wsgzao.github.io/post/osi/
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看❤️
评论
【第129期】程序员的新宠:三款终端工具,让你告别Xshell!
概述 WindTerm:跨平台的SSH利器 首先介绍的是WindTerm,这是一款使用C语言开发的跨平台SSH客户端。它不仅完全免费,而且没有商业使用的限制。WindTerm支持SSH v2、Telnet、Raw Tcp等协议,而且性能出色,甚至超过了FinalShell和Electerm。功能
前端微服务
0
上班的时候,有一群摸鱼搭子非常重要...
上班的时候,有一群摸鱼搭子非常重要!一到上班时间,他们就从四面八方涌进群里冒泡...从八卦聊到股市、从职场聊到乌X兰局势,偶尔还会复读、相亲、battle...然后,下午6点钟准时消失不见...所以你要不要加入我们一起摸鱼?我们有北京、上海、深圳、广州、杭州、武汉、成都、南京等8个城市的摸鱼群,还有
产品经理日记
0
运营知识普及(定义、本质、职责、步骤)
█ 运营的定义运营可以分为广义和狭义两个方面,每个方面它的概念是不一样的。广义上,运营就是围绕产品做的一切人为干预,运营的基础是产品。这时候,运营基本上可以分为三大块——销售、服务、营销。销售:把产品销售出去。大客户运营、商业运营等等一般本质都是销售。服务:在产品和用户之间做一个个连接。运
产品与体验
0
周四002 瑞超:同样落寞的境遇——北雪平vs埃尔夫斯堡
上赛季最终排名联赛第9的北雪平本赛季伊始表现不佳,4轮战罢他们仅以1胜1平2负的战绩排在倒数第三,这支历史上曾夺得13次联赛冠军、6次杯赛冠军老牌劲旅,正如英格兰赛场上的一众百年俱乐部,在低谷中不断探索着出路。球队主教练安德烈亚斯·阿尔姆曾是AIK索尔纳及赫根队的主教练,他于今年年初刚刚拿起球队教鞭
产品与体验
0
知乎高问:程序员有必要知道为什么做某个功能吗?
将Python客栈设为“星标⭐”第一时间收到最新资讯前言知乎上有一个提问:程序员有必要知道为什么做某个功能吗?↓↓↓今天,我们就这个话题一起来做个讨论。不知道程序员的你,在接到产品经理提的一个需求后,是习惯马上动手开始撸代码呢?还是会先暂停一下,认真思考一会如下一些问题,比如这个需求产生的背景是什么
Python客栈
0
日本影山优佳最新杂志照,展现充满透明感的美丽
今天的图文分享的是影山优佳的杂志写真。元日向坂46的影山优佳,登上了写真杂志《周刊FLASH》5/7和5/14合并号的封面。影山优佳是日本艺人、女演员、前偶像。身高155厘米。2001年5月8日出生于东京都。2023年7月从组合日向坂46毕业,之后作为演员活跃的影山优佳,在《周刊FLAS
python教程
0
盘点一个使用超级鹰识别验证码并自动登录的案例
点击上方“Python共享之家”,进行关注回复“资源”即可获赠Python学习资料今日鸡汤江上几人在,天涯孤棹还。大家好,我是皮皮。一、前言前几天在Python钻石交流群【静惜】问了一个Python实现识别验证码并自动登录的问题,提问截图如下:验证码的截图如下所示:二、实现过程这里大家激烈的探讨,【
IT共享之家
0