当前位置: 首页 > news >正文

网络基础

    一台装有操作系统,并安装好了应用软件,用户就可以正常使用了。如果每一个人的机器都这样的话,那么大家彼此之间都是孤立的。有什么东西可以解决这一问题呢,下面就由我为大家一一解答。

    如何才能一起玩耍呢?

 

什么是互联网?

    互联网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。我们每一个个体,就靠这张大网实现文件彼此传输。

    既然靠这张大网,那么问题也来了,张三是北京的,李四是广东的。都用方言的话,交流起来就有问题了。于是,就得要有一个标准来统一,那就是——普通话。

    同理,张三是中国的,要与美国的Michael交流的话,就得用世界统一的通信标准——英语(English)。

    因此,英语就成了世界上所有人通信的统一标准。,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的internet实际上就是这一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列的协议,总称为‘互联网协议’(Internet Protocol Suite)。

OSI五层模型

    互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层,对于我们开发者来说,只要了解tcp/ip五层就行了。tcp/ip五层自下而上分别是:物理层、数据链路层、网络层、传输层、应用层。

每层运行常见物理设备

下面我们就一层一层来说一说:

1、物理层

    我们上面提到了,就是把两台或多个机器必须都接入Internet完成组网。物理层的功能就是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。

2、数据链路层

    单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思。这就得数据链路层来完成。数据链路层的功能就是定义电信号的分组方式。

    早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet。

ethernet规定:a、一组电信号构成一个数据包,叫做‘帧;

                     b、每一数据帧分成:报头head和数据data两部分。

                          head包含:(固定18个字节)

                          发送者/源地址,6个字节

                          接收者/目标地址,6个字节

                          数据类型,6个字节

                          data包含:(最短46字节,最长1500字节)

    数据包的具体内容:head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送。

    ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址。这便是指网卡的地址,也就是max地址。

    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)。

    有了max地址之后,同一网络内的两台或多台机器就可以通信了。

3、网络层

    有了ethernet、mac地址、广播的发送方式,世界上的计算机就可以通信了,但是,大家想一想。问题是不是也来了。你这一发信息,全世界够收到了。这不仅仅是效率低的问题,换而言之,就是一场灾难。

    通过IP协议和ARP协议的规范就可以完成各计算机之间的彼此通信。

4、传输层

    网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序。传输层的功能就是建立端口到端口的通信。

5、应用层

    用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式 。应用层的功能就是规定应用程序的数据格式。

用户上网流程

1、用户必须连接Internet,获取本机的IP地址、子网掩码、网关的IP地址、DNS的IP地址。

2、打开浏览器,在地址栏输入想要打开的网页。如:www.baidu.com

3、dns协议(基于udp协议),下图是详细工作流程图。

4、HTTP的内容它会被嵌在TCP数据包之中,然后,通过TCP协议、IP协议、 以太网协议,再到服务器端。

5、服务器端经过多个网关的转发,收到了这四个以太网数据包。根据IP标头的序号,浏览器的服务器将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来。本机收到HTTP响应以后,就可以将网页显示出来,这就完成了一次网络通信。

 

转载于:https://www.cnblogs.com/Michael--chen/p/6544586.html

相关文章:

  • hibernate常见错误
  • oracle中REF Cursor用法
  • 结对作业
  • FLEX在datagrid中的itemreader中渲染combobox使用outerDocument
  • shell分库备份
  • DataGrid里嵌入checkBox,增加,删除等控件等操作
  • 最近前端面试遇到的题目
  • flex 鼠标中间滚动按钮监听
  • Linux基础之命令练习Day3-文件管理:cat,tar,gzip,vim,ln
  • flex shareObject对象详解
  • 关于中国电信天翼开放平台短信接口的一些使用
  • 1-4字符串分隔
  • svn服务器的架构和配置
  • flex 日期的相关操作
  • flex中String转化为date
  • Debian下无root权限使用Python访问Oracle
  • mockjs让前端开发独立于后端
  • React组件设计模式(一)
  • Sass 快速入门教程
  • Service Worker
  • Vue2.x学习三:事件处理生命周期钩子
  • Webpack 4x 之路 ( 四 )
  • Xmanager 远程桌面 CentOS 7
  • 多线程事务回滚
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 网络应用优化——时延与带宽
  • Android开发者必备:推荐一款助力开发的开源APP
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • (C#)获取字符编码的类
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (C语言)球球大作战
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (九)One-Wire总线-DS18B20
  • (论文阅读30/100)Convolutional Pose Machines
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (转)shell调试方法
  • (转载)Google Chrome调试JS
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Core跨平台微服务学习资源
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NetCore部署微服务(二)
  • .net流程开发平台的一些难点(1)
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [20170705]diff比较执行结果的内容.txt
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [android] 切换界面的通用处理
  • [BZOJ4010]菜肴制作
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [docker]docker网络-直接路由模式