一下笔记是我看互联网协议入门(一) - 阮一峰的网络日志 所记录的笔记。

如果有人要认真学,强烈建议看上面的链接,以此为基础,再去看别的书,以及视频,因为目前来看阮一峰写的东西是最最最通俗易懂的

并且自己这个笔记也不是用来教学的,而是自己拿来练手,总结知识的

-网络分层,最上层的是用户,最下层的是硬件,中间的都属于传输,可以分4层,5层, 6层(OSI,TCP/IP,mix)

-网络要连接就就得靠某种媒介,可以用光缆、电缆、双绞线、无线电波等方式。

-但是连接后不管是为了传输数据,还是安全,还是统一性,必须遵守一定的规则,大家都遵守的规则就叫做协议

以太网协议:

-一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。

"标头"包含数据包的一些说明项,比如发送者、接受者、数据类型等等;"数据"则是数据包的具体内容。

"标头"的长度,固定为18字节。"数据"的长度,最短为46字节,最长为1500字节。因此,整个"帧"最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。

MAC

-所谓的MAC地址,本质上是你网卡的地址

下面这幅图描述的是以太网(ethernet协议)如何运作,简单说就是当1台机器要对另一台机器发送数据时,他会对可发送范围内(网络范围)的所有机器都发送一份信息(frames),然后由目标主机来判断是否接受

由于mac的存在,在数据包的头部会包含MAC地址,所以每一台机器在收到数据包后会先看看自己的MAC对对方数据包头部的MAC地址是否吻合,如果相同就接受,不同就拒绝,以此实现通讯

这种通讯方式也叫做广播(broadcast):我给所有人都发一份

网络层的诞生

-由于广播的通讯模式槽点太大,并且只限于自网络范围,所以必须想新的方法

-主要的作用就是,多搞一个新的地址,MAC地址用来准确定位物理地址(网卡地址),然后除此之外还要一个来定义或者划分子网的地址

-也叫做网址

-网络地址出现后,通讯就不是直接通过MAC了,而是先寻找子网地址,然后确认子网地址后,再在子网内寻找目标MAC

IP地址

-全称是internet protocol direccion(internet protocol地址)

-IP分为2部分,网络号和主机号,网络号用来确定在哪个子网,或者说子网的地址,主机号应该就是用来确定子网中具体的目标机器

-但是光这样会有一个问题,比如说IP地址:172.16.254.1,我们虽然知道这个是IP地址,但是无法确定到底哪里到哪里是网络号,哪里到哪里是主机号,为了解决这个问题,所以需要一个叫做子网掩码的东西(subnet mask

(卧槽,原来这才是Subnet mask的作用,我特么的在学校里磨了6个月都不清楚,现在几分钟内就理解了)

例子:

比如说172.16.254.1这个IP地址,由于本质上IP地址是2进制,也就是010101010...,但是由于为了让人类更好阅读,所以把2进制转换成10进制,那么,也就是说172.16.254.1本质上是

我们继续

子网掩码的本质也是2进制,并且它的规律是:2进制前几位有多少个1,那么实际IP地址的网络号的范围相等于子网掩码2进制中的1

听起来很别扭,这特么是人话吗???

用例子来说明就行了

比如IP地址:172.16.254.1 的 子网掩码是:255.255.255.0

那么变成2进制就是:

IP :10101100.00010000.11111110.00000001

子网 :11111111.11111111.11111111.00000000

子网全是1111的大一部分等同于IP地址的网络部分也就是说我们可以这么划分:

IP :网络号:10101100.00010000.11111110. 00000001

子网 : 11111111.11111111.11111111. 00000000

这样一来,就能判断一个Ip地址的网络部分是哪些了

IP数据包

-以太网的数据包形式是头部和数据,也就是HEAD和DATA

IP的数据包也是这样,那么现在就有个问题:以太网的作用是在子网内传输数据,定义目标,IP地址的作用是划分子网,定义子网,把数据传输到目标子网,所以IP数据包也会有HEAD和DATA,这样一来要怎么组成这个数据包?

解决方法就是嵌套,或者连环封装

也就是把IP数据包的内容,或者说IP数据包的HEAD放到以太的DATA中,像这样

蓝色是以太网的HEAD,红色是DATA,红色的HEAD是IP的HEAD

ARP协议

由于IP协议和ehternet(以太王)协议需要同时工作,那么要把数据准确的发送到目标主机我们就需要2个地址,IP地址和MAC地址

通常情况下我们知道对方的IP地址但是不知道对方的MAC,所以就得想个办法能直接从IP地址或者通过IP地址来得到MAC地址的方法

如果通讯的两天主机在同一个子网,那么就会用到ARP协议,在以太网的数据包中会多发送一个ARP协议的数据包,其中就包含了目标IP地址,并在MAC地址上填写公共地址(FF:FF:FF:FF:FF),公共地址表示广播,也就是给所有人都发一份

这和原始的以太网协议类似,只不过这次比较的不是MAC地址,而是IP地址,给所有人都发一份,然后目标主机和IP和我数据包中IP地址相吻合的那个就会接受,其余的会拒接。

还有一种情况是2主机不在同一个子网,这种情况会先把数据包发到两个子网连接处的网关(gateway),然后再让网关处理

(这里没有细说,后面应该会谈到)

传输层

MAC+IP让我们刻意建立通信,但是又有新的问题了

一台主机上会有很多程序需要用到网络,或者说需要通讯,甚至就光一个游览器内,我们正常适用也会开至少5+的网页同时使用。

为了能够准确定义每个数据包的作用,哪个用来实现XX服务,哪个用来传输文字内容,哪个用来传输视频内容,需要新的参数:端口(port)

端口用来划分数据包,来精确定位哪个数据包是用来专门给哪个程序用的

这里的一个重要概念就是之前的IP,以太,是主机和主机之间的交流,有了端口(port),就变成了程序和程序之间的交流

UDP协议

-用来实现端口和端口之间的通讯(其他的还有TCP)

其实就是在以太网和IP数据包的前面加上个端口号

UDP的组成也是HEAD和DATA,HEAD包括了发送者的端口和接收者的端口,并且UDP是放在IP数据包的数据部分,于是,以太+IP+UDP的组合就是:

TCP协议

-其实相当于UDP加强版,因为UDP在发送出数据包后无法确定目标主机是否收到了自己发的包,而TCP则可以,每一发一个包都会查看或者说确认一下目标是否收到了自己的数据包,收不到的情况就重发一次

-和UDP一样,是在IP数据包内部

应用层

应用层相当于数据包中DATA那段,主要是规定应用程序的数据格式

比如说文字,视频,图片的数据格式肯定是不同的,这种时候就需要一个规则来规范一下数据的格式,这样在传输的时候就不会出错

关于网关的补充

还是没有细说,但是我们至少已经可以确定网关的作用就是对自己子网内发送到子网外的数据包进行加工处理,以及把子网外发到子网内的数据包进行解析定位

静态IP和动态IP

很好理解,静态就是永远不变,比如说我手动设置我电脑的IP地址为:192.168.0.1(其实严格的来说不算是我电脑的IP地址,而是我这台电脑在整个internet 网络中的地址,的逻辑地址,包括MAC也不是电脑的地址,而是物理层面我们那块网卡的地址)

假设IP为192.168.0.1,静态的情况就是他永远都是192.168.0.1,动态的情况就是我在使用的时候是192.168.0.1,但是不用的时候别人可以拿来用,同时在我想用的时候如果别人在用192.168.0.1,那么DHCP服务器会自动给我匹配一个新的

动态的目的在于更加有效率的利用IP地址,因为很少有24小时连续使用的需求,所以我们就把一个IP地址动态化,让他可以给很多主机使用

DHCP协议

使用DHCP协议的子网都会拥有一台管理子网内所有IP地址的机器,叫做DHCP服务器,他负责让IP动态化

并且所有新加入该子网的机器都要向DHCP服务器发送一个DHCP请求的数据包,这样才能申请IP地址相关的网络参数

新的问题:既然IP是动态的,那么新加入的主机如何和DHCP服务器通讯?

1.以太网HEAD,其中包括自己的MAC,然后目标MAC不知道,就用广播地址替代

2.IP HEAD,我两个都不知道,自己就用0.0.0.0,目标的就255.255.255.255(类似广播)

3.UDP HEAD 包括了通讯的端口,这是预设的,自己的是68端口,对方的是67端口

由于是以太网协议,新的机器会给所有子网内的机器都发一遍,然后DHCP服务器看到“特殊的”MAC和IP地址后,就知道这个是发给我自己的

DHCP受到数据包以后,就根据里面的内容分配IP地址,然后回复一个DHCP响应的数据包,其中就包括配送的IP地址和网络相关的具体参数

新的主机收到DHCP响应的数据包后,就获得了IP地址和相关参数,于是就连接上了互联网

在网络上请求网页为什么会用到工业以太网协议_网络知识总结相关推荐

  1. 什么是SAN网络?SAN网络上的存储备份和恢复怎么操作?SAN 测试网络存储与服务器架构架构优化

    什么是SAN网络?SAN网络上的存储备份和恢复怎么操作?SAN 测试网络存储与服务器架构架构优化 SAN网络上的存储备份和恢复 我是驰网艾西今天跟大家聊聊什么是SAN网络? SAN(Storage A ...

  2. 工业以太网交换机与网络交换机的区别

    工业以太网交换机与商用交换机在数据交换功能上基本一致,但在设计上以及在元器件的选用上,产品的强度和适用性方面更能满足工业现场的需要.此外在模块扩展方面也表现的比商用交换机更为灵活:有多种光口和电口可供 ...

  3. 【Lecture 3.2】 从网络上请求信息

    文章目录 24.3 URL剖析 24.2. The Internet: Behind the Scenes: Router 24.4. The HTTP Protocol 协议 24.5. Using ...

  4. nbns协议_网络协议详解1 - NBNS

    NetBIOS 简介 NetBIOS,Network Basic Input/Output System的缩写,一般指用于局域网通信的一套API,相关RFC文档包括 RFC 1001, RFC 100 ...

  5. java udp 协议_网络协议 - UDP 协议详解

    ¶ 网络协议 - UDP 协议详解 基于TCP和UDP的协议非常广泛,所以也有必要对UDP协议进行详解.@pdai ¶ UDP概述 UDP(User Datagram Protocol)即用户数据报协 ...

  6. 路由器dhcp服务异常不能上网_网络连接配置错误和DHCP服务存在问题导致无法..._网络编辑_帮考网...

    枫月舞 2019-07-15 13:28 908 请安以下方法查找原因 一.网络设置的问题 这种原因比较多出现在需要手动指定IP.网关.DNS服务器联网方式下,及使用代理服务器上网的.仔细检查计算机的 ...

  7. android rtsp协议转http协议_网络协议HTTP 协议(一)

    HTTP协议 是一种无状态的.应用层的.以请求/应答方式运行的协议,它使用可拓展的语义和自描述消息格式,与基于网络的超文本信息系统灵活地互动. 1.HTTP 请求场景示意图 2.浏览器发起 HTTP ...

  8. ptp精准时间协议_网络时钟同步协议– NTP, PTP – 默默的点滴

    这篇文章介绍一下两个时钟同步的网络协议:NTP和PTP. 这里不涉及协议的原理和具体实现(想了解的可自行Google),重点是如何搭建起这两个服务. 1. NTP及PTP简介 NTP(Network ...

  9. linux新系统配置网络,怎样配置新安装的Ubuntu版Linux系统的..._网络编辑_帮考网

    由于Ubuntu的Linux内核对于WPA的加密方式支持不是很好,所有使用普通方式的命令行无法连接WPA2类型的路由器. 1.本机使用无线网,未插入网线 2.查看无线上网网卡 3.设置virtualb ...

最新文章

  1. 日期相减计算年_函数 | Excel有个“秘密”函数,计算年龄工龄特方便
  2. ansa打开catia文件_关于CATIA文件格式的那些事儿
  3. c++stl应用入门
  4. linux 内核dmesg,linux內核調試kmsg,dmesg
  5. TIS教程04-客户端
  6. 【华为云技术分享】【昇腾】【玩转Atlas200DK系列】基于Pycharm专业版构建开发板python开发运行环境
  7. 【重磅】亚马逊向第三方开放Echo音箱语音识别技术(附AmazonEcho Dot拆解)
  8. ajax前面$,连续多次发送Ajax前面的请求被后面的覆盖以致不能执行的问题
  9. linux ora03113,ora-03113 问题解决
  10. 国内HTML5前端开发框架汇总
  11. 华为最美小姐姐,被外派墨西哥后...
  12. 6. Zigbee应用程序框架开发指南 - 应用程序框架Callback接口
  13. MyBatisPlus的使用--十数个案例足以让你步入mybatisplus
  14. Web报表系统葡萄城报表:报表设计
  15. VMware虚拟机无法识别U盘解决方案
  16. 如何实现罗克韦尔PLC的模拟量采集和远程上下载?
  17. 网站识别Windows AD 域账号,并自动登录
  18. 【MySQL】数据库连接池的原理及实现
  19. 世界上第一台电子数字式计算机诞生于美国,世界上公认的第一台电子数字计算机诞生于哪年哪个国家?...
  20. 使用Kaggle API下载数据集

热门文章

  1. JQuery文件上传插件ajaxFileUpload在Asp.net MVC中的使用[转载]
  2. IIS 服务器下载apk文件报404错
  3. 云计算:技术疲劳玩概念 伪云项目横行于世
  4. tpcc-mysql percona_tpcc-mysql 对percona5.6进行压力测试
  5. vb 常量数组_用VB制作一个程序的基本步骤
  6. 如何用C语言编辑窗口界面,「分享」C语言如何编写图形界面
  7. 路飞学城django
  8. Python机器学习:线型回归法007多元线性回归和正规方程的解
  9. java daemon线程的作用_JAVA DAEMON线程的理解
  10. 学习笔记--asp.net主题和外观(转自msdn,仅为自己学习存储和有意读者使用)