网络术语--dns,ipv6, 网关,IP协议

参考阮一峰教程:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html    浅显易懂还有图,读一遍神清气爽

https://www.jianshu.com/p/4b9d43c0571a

动画说明TCP/IP: https://www.youtube.com/watch?v=HOaIqQAeaik

互联网协议

互联网的核心是一系列协议,总称为“互联网协议”,它们对电脑如何连接和组网做了详尽的规定。

OSI模型(Open System Interconnection model)  七层

 

 

每一层都为了完成一种功能,为了实现这些功能,就需要大家都遵守共同的规则,“protocol”

自底向上:

1. 物理层

物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输

2. 数据链路层:

通过物理网络链路提供数据传输,规定了0,1的风暴形式,确定了网络数据包的形式

3. 网络层

负责在源和终点之间建立连接,可理解为怎么确定计算机的位置,ipv4,ipv6? 

路由选路,选择本次通信使用的协议(http,ftp等), IP地址在这一层

4. 传输层

向高层提供可靠的端到端的网络数据流服务

每个应用程序都会在网卡注册一个端口号,该层就是端开口到端口的通信

UDP:只发不管别人收不收得到

5. 会话层

为两端通信实体建立连接(自动的网络寻址)

6. 表示层

提供多种功能用于应用层数据编码和转换,以确保一个应用层发出的信息能被另一个系统应用层识别,可解决不同系统之间的通信,比如linux下qq可以和windows下qq通信

怎么编码

7. 应用层

应用软件使用的协议,邮箱使用pop3,smtp,远程登录Telnet,获取ip地址的DHCP,域名解析dns,网页浏览的http协议

这部分协议主要用于规定应用软件如何去进行通信的

常见的应用层协议:

互联网分层结构的好处: 上层的变动完全不影响下层的结构

TCP/IP模型四层模型

1. 应用层: TFTP, HTTP, SNMP, FTP, SMTP, DNS, Telnet

2. 传输层:对应于传输层

TCP协议提供可靠的数据流运输协议(Transmission Control Protocol),UDP协议提供不可靠的用户数据报服务(Use Datagram Protocol)

TCP:三次握手、四次挥手

3. 网间层:对应网络层,本层包含IP协议,RIP(Routing Information Protocol)协议(路由信息协议),负责数据的包装,寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol, ICMP),用来提供网络诊断信息

4. 网络接口层: 网络接口层包括用于协作IP数据在已有网络介质上传输的协议。

它定义像地址解析协议(ARP, Address Resolution Protocol)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口

 

IP(Internet Protocol, 网际协议)

网间层的主要协议,任务时在源地址和目的地址之间传输数据。IP协议只是尽最大努力来传输数据包,并不保证所有的包都可以传输 到目的地,也不保证数据包的顺序和唯一。

  • IP 定义了 TCP/IP 的地址,寻址方法,以及路由规则。现在广泛使用的 IP 协议有 IPv4 和 IPv6 两种:IPv4 使用 32 位二进制整数做地址,一般使用点分十进制方式表示,比如 192.168.0.1。
  • IP 地址由两部分组成,即网络号和主机号。故一个完整的 IPv4 地址往往表示 为 192.168.0.1/24 或192.168.0.1/255.255.255.0 这种形式。
  • IPv6 是为了解决 IPv4 地址耗尽和其它一些问题而研发的最新版本的 IP。使用 128 位 整数表示地址,通常使用冒号分隔的十六进制来表示,并且可以省略其中一串连续的 0,如:fe80::200:1ff:fe00:1。

TCP(TransmissionControlProtocol,传输控制协议)是一种面向连接的,可靠的, 基于字节流传输的通信协议。TCP 具有端口号的概念,用来标识同一个地址上的不 同应用。

UDP(UserDatagramProtocol,用户数据报协议)是一个面向数据报的传输层协 议。UDP 的传输是不可靠的,简单的说就是发了不管,发送者不会知道目标地址 的数据通路是否发生拥塞,也不知道数据是否到达,是否完整以及是否还是原来的 次序。它同 TCP 一样有用来标识本地应用的端口号。所以应用 UDP 的应用,都能 够容忍一定数量的错误和丢包,但是对传输性能敏感的,比如流媒体、DNS 等。

 DHCP(DynamicHostConfigrationProtocol,动态主机配置协议)是用于局域 网自动分配 IP 地址和主机配置的协议。可以使局域网的部署更加简单。

 DNS(DomainNameSystem,域名系统)是互联网的一项服务,可以简单的将用“.” 分隔的一般会有意义的域名转换成不易记忆的 IP 地址。一般使用 UDP 协议传输, 也可以使用 TCP,默认服务端口号 53。

FTP(FileTransferProtocol,文件传输协议)是用来进行文件传输的标准协议。 FTP 基于 TCP 使用端口号 20 来传输数据,21 来传输控制信息。

SSH(SecureShell,安全Shell),因为传统的网络服务程序比如TELNET本质上都极不安全,明文传说数据和用户信息包括密码,SSH 被开发出来避免这些问题, 它其实是一个协议框架,有大量的扩展冗余能力,并且?供了加密压缩的通道可以 为其他协议使用。

HTTP(HyperTextTransferProtocol,超文本传输协议)是现在广为流行的WEB 网络的基础,HTTPS 是 HTTP 的加密安全版本。协议通过 TCP 传输,HTTP 默认 使用端口 80,HTTPS 使用 443。

 

阮老师笔记:

1. 协议: 每一层都要完成一种功能,为了实现这些功能,就需要大家都遵守共同的规则 “协议”

每一层都定义了很多协议,这些协议总称为“互联网协议” Internet Protocol Suite

2. 物理层: 把电脑连起来的物理手段,主要规定了网络的一些电气特性,作用是负责传送1,0的电信号

3.  链接层: 单纯0,1没有任何意义,必须规定解读方式,确定了0和1的分组方式,怎么装包packet内容, 以太网协议,Ethernet占据了主导地位,以太网规定,一组电信号构成一个数据包,叫做“帧”(Frame),每一帧分层两个部分:标头(Head)和数据(Data)

标头包含数据包的一些说明项,比如发送者,接受者,数据类型等等;“数据”这是数据包的具体内容;标头的长度,固定为18字节。数据的长度最短为46字节,最长为1500字节。因此,整个帧最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。

MAC地址:

以太网数据的标头中包含了发送者和接受者的信息,以太网规定,链路网络的所有设备,都必须具有“网卡”接口,数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。

每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。

 

前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。有了MAC地址,就可以定位网卡和数据包的路径了。

 广播:

一块网卡怎么会知道另一块网卡的MAC地址?

ARP协议: 地址解析协议,Address Resolution Protocol, 根据IP地址获取物理地址的一个TCP/IP协议

以太网采用很原始的方法,它不是把数据包准确送到接收方,而是想本网络内所有计算机发送,让每台计算机自己判断,是否为接收方

就是在一个子网内的所有计算机都会收到数据包,他们读取这个数据包的标头,找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接收这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做“广播”

4. 网络层:

广播只是在一个子网内实现,如果两个不在同一个子网络的计算机要通信,所以需要网络层,引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络,这套地址就叫做“网络地址”,简称“网址”。

每台计算机有两种地址,一种是MAC地址,另一种是网络地址。MAC地址时绑定在网卡上的,网络地址时管理员分配的,它们没有任何关系。

IP协议:

规定网络地址的协议叫做“IP协议”。目前广泛采用的是IP协议第四版,简称IPV4.

这个地址分成两个部分,前一部分代表网络,后一部分代表主机。在同一个子网内的电脑它们IP地址的网络部分必定是相同的。但是我们无法判断哪些是网络部分,所以由“子网掩码”,如果前24位是网络部分,后8位是主机部分,那么子网掩码是255,。255.255.0

IP协议的作用主要有两个:为每一台电脑分配IP地址,另一个是确定哪些地址在同一个子网络中

IP数据包:

以太网数据包只包含MAC地址,没有IP地址

就把IP地址作为以太网数据包的数据内容,就不需要修改以太网协议

红色的是IP数据包,走到底层链路层,就要套上个MAC地址标头(蓝色)

IP数据包的标头长度为20-60字节,整个数据包的总长度最大为65535字节,所以“数据”部分最长为65515字节,但是以太数据包的“数据部分”最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

ARP协议:

我们需要一种机制可以从IP地址得到MAC地址,两种情况:第一,两个主机不在同一个子网络中,那么没法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的“网关”(gateway),让网关去处理。

第二种情况:如果两台主机在同一个子网络,那么我们可以用ARP协议,得到对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所在查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个“广播”地址。他所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者和相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。

总之,有了ARP协议之后,我们就可以得到同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上了。

自顶向下而言,先有IP地址,然后广播得到MAC地址

5. 传输层

有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。

但问题是,同一台主机上有许多程序都需要用到网络,当一个数据包从互联网上发来的时候,你怎么知道它是发给哪个程序的,所以我们还需要一个参数,表示这个数据包到底供哪个程序使用,这个参数就叫做“端口”(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特点端口,所以不同的程序就能取到自己所需要的数据。

 "端口"是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。

 "传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做"套接字"(socket)。有了它,就可以进行网络应用程序开发了。

 UPD协议:

要在数据包中加入端口信息,这就需要新的协议,最简单的实现叫做UDP协议,它的格式几乎就是在数据前面,加上端口号。

UDP数据包,也是由"标头"和"数据"两部分组成。

 "标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的"数据"部分,而前面说过,IP数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样

 “越走到底层”,就要在数据包前面套一个底层的协议标头

绿色是UPD协议标头  红色是IP协议标头, 蓝色的是以太网协议标头

UDP数据包非常简单,"标头"部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

TCP协议:

UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。

为了解决这个问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

因此,TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。

6. 应用层

应用程序收到"传输层"的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。

"应用层"的作用,就是规定应用程序的数据格式。

举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。

这是最高的一层,直接面对用户。它的数据就放在TCP数据包的"数据"部分。因此,现在的以太网的数据包就变成下面这样。

 

 网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。

如果两台电脑不在同一个子网络,无法通过广播的方式知道对方的MAC地址,必须通过网关(gateway)转发

上图中,1号电脑要向4号电脑发送一个数据包。它先判断4号电脑是否在同一个子网络,结果发现不是(后文介绍判断方法),于是就把这个数据包发到网关A。网关A通过路由协议,发现4号电脑位于子网络B,又把数据包发给网关B,网关B再转发到4号电脑。

1号电脑把数据包发到网关A,必须知道网关A的MAC地址。所以,数据包的目标地址,实际上分成两种情况:

用户的上网设置

静态IP地址

想要上网,需要设置4个参数:

  • 本机的IP地址
  • 子网掩码
  • 网关的IP地址
  • DNS的IP地址

如果设置了静态IP地址,那么每次开机,都会被分到同样的IP地址

动态IP地址

计算机开机后,会自动分配到一个IP地址,不用人为设定。它使用的协议叫做 DHCP协议

这个协议规定,每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做"DHCP服务器"。新的计算机加入网络,必须向"DHCP服务器"发送一个"DHCP请求"数据包,申请IP地址和相关的网络参数。

前面说过,如果两台计算机在同一个子网络,必须知道对方的MAC地址和IP地址,才能发送数据包。但是,新加入的计算机不知道这两个地址,怎么发送数据包呢?

DHCP协议做了一些巧妙的规定。

它是应用层协议,建立在UDP协议之上,所以整个数据包是这样的

 

以太网标头中MAC地址填 FF-FF-FF-FF-FF-FF 表示广播地址

IP标头中设置发出方的IP地址和接收方的IP地址,对于这两者,本机都不知道,所以填发出方为0.0.0.0,接收方填255.255.255.255

UDP标头,设置发出端口和接收端口。这一部分是DHCP协议规定好的,发出方式68端口,接收方是67端口

当看到发出方IP地址时0.0.0.0,接收方是255.255.255.255,DHCP服务器就知道这个包是发给它的

然后DHCP服务器督促这个包的数据内容,分配好IP地址,发送回去一个DHCP响应数据包,IP地址时发出方(DHCP服务器的IP地址)和接收方(255.255.255.255)

DNS协议:

发送数据包,必须要知道对方的IP地址,但是有时候上网只知道网址,比如说www.google.com,不知道IP,这里,DNS协议就可以帮助我们,将这个网址转换成IP地址。已知DNS服务器为8.8.8.8,于是我们向这个地址发送一个DNS数据包(53端口)

然后,DNS服务器做出响应,告诉我们Google的IP地址是172.194.72.105。于是,我们知道了对方的IP地址。

 如果两个通讯计算机不在同一个子网络内,那么接收方的MAC地址将是网关的MAC地址

应用层协议:

浏览网页是HTTP协议,它的整个数据包构造如下:

 

转载于:https://www.cnblogs.com/lainey/p/8619211.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值