互联网入门协议
2018-01-18 18:02:19 0 举报
互联网入门协议,详解讲解了互联网五层模型中各个层次的协议及作用,随后分享DOS攻击初级跟ARP攻击初级
作者其他创作
大纲/内容
3、
背景:
* 子网掩码
主机名.次级域名.顶级域名.根域名
就是建立\"端口到端口\"的通信。相比之下,\"网络层\"的功能是建立\"主机到主机\"的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做\"套接字\"(socket)。有了它,就可以进行网络应用程序开发了。
Data:数据包的具体内容,最短46字节,最长1500字节
IP Head:
以太网Head
应用
分级查询
应用层数据包
host . sld . tld . root
TCP协议
——人生前行,蝇营狗苟,想要大笑挽个剑花,勇敢做自己
\"标头\"部分主要定义了发出端口和接收端口
2、TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源
因为IP数据包是放在以太网数据包里发送的,所以我们必须同时知道两个地址,一个是对方的MAC地址,另一个是对方的IP地址。通常情况下,对方的IP地址是已知的(后文会解释),但是我们不知道它的MAC地址。所以,我们需要一种机制,能够从IP地址得到MAC地址。
TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了\"应用层\"。
TCP数据包和UDP数据包一样,都是内嵌在IP数据包的\"数据\"部分。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
这就导致了\"网络层\"的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做\"网络地址\",简称\"网址\"。
ARP协议
因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道\"这个包是发给我的\",而其他计算机就可以丢弃这个包
应用程序收到\"传输层\"的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。
从\"顶级域名服务器\"查到\"次级域名服务器\"的NS记录和A记录(IP地址)
首先,它是一种应用层协议,建立在UDP协议之上,所以整个数据包是这样的:
管理员(或者ISP)会告诉你下面四个参数,缺一不可,你把它们填入操作系统,计算机就能连上网了:
非同一子网络:
传输层
这是最高的一层,直接面对用户。它的数据就放在TCP数据包的\"数据\"部分。因此,现在的以太网的数据包就变成下面这样:
互联网入门协议
域名层级:
Date:
以太网标头的MAC地址是双方的网卡地址
DNS服务器的IP地址,有可能是动态的,每次上网时由网关分配,这叫做DHCP机制;也有可能是事先指定的固定地址。Linux系统里面,DNS服务器的IP地址保存在/etc/resolv.conf文件
定义:单纯的0、1没有任何意义,必须规定解读方式,这就是链路层的功能,它在物理层的上方,确定了0、1的分组方式
数据包:
* DNSIP地址
00000001
Addr:兰州市七里河区创智国际金利达电子技术有限公司
这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包
由来
后面的\"IP标头\",设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255
从\"次级域名服务器\"查出\"主机名\"的IP地址
172 . 16 . 254 . 1
因此,必须找到一种方法,能够区分哪些MAC地址属于同一个子网络,哪些不是。如果是同一个子网络,就采用广播方式发送,否则就采用\"路由\"方式发送。(\"路由\"的意思,就是指如何向不同的子网络分发数据包)遗憾的是,MAC地址本身无法做到这一点。它只与厂商有关,与所处网络无关。
4、
UDP Head:
静态IP地址:
新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数
有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。接下来的问题是,同一台主机上有许多程序都需要用到网络,比如,你一边浏览网页,一边与朋友在线聊天。当一个数据包从互联网上发来的时候,你怎么知道,它是表示网页的内容,还是表示在线聊天的内容?也就是说,我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用。这个参数就叫做\"端口\"(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。
端口:
标头:
需要明确的是,每一级域名都有自己的NS记录,NS记录指向该级域名的域名服务器。这些服务器知道下一级域名的各种记录
动态IP地址
规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。目前,广泛采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位组成
IP数据包的\"标头\
00010000
是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。
2、
1.每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。
Author:GouplovXim1314
DHCP数据包
IP Head
UDP数据包非常简单,\"标头\
接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个\"DHCP响应\"数据包。这个响应包的结构也是类似的
DNS协议
从\"根域名服务器\"查到\"顶级域名服务器\"的NS记录和A记录(IP地址)
00-B0-D0-86-BB-F7
所谓\"分级查询\",就是从根域名开始,依次查询每一级域名的NS记录,直到查到最终的IP地址,过程大致如下
以太网Head:
IPv4 Adress:
最后的\"UDP标头\",设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。
于是,\"网络层\"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。
内核态:
以太网采用广播方式发送数据包,所有成员人手一\"包\",不仅效率低,而且局限在发送者所在的子网络。也就是说,如果两台计算机不在同一个子网络,广播是传不过去的。这种设计是合理的,否则互联网上每一台计算机都会收到所有包,那会引起灾难。
1、
现在,我们必须在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做UDP协议,它的格式几乎就是在数据前面,加上端口号。
以太网数据包 + IP数据包 + DUP数据包
同一子网络:
分配给请求端的IP地址和本网络的具体参数则包含在Data部分
IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方)
MAC地址:上面提到,以太网数据包的\"标头\",包含了发送者和接受者的信息。那么,发送者和接受者是如何标识呢?以太网规定,连入网络的所有设备,都必须具有\"网卡\"接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。
UDP标头的端口是67(发出方)和68(接收方)
以太网协议:早期的时候,每家公司都有自己的电信号分组方式,渐渐的,一种叫做“以太网”的协议,占据了主导地位。以太网规定,一组电信号构成一个数据包,叫做“帧”,每个帧分为两个部分,标头(Head)和数据(Data)
应用层
1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的\"标头\",找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做\"广播\"(broadcasting)。有了数据包的定义、网卡的MAC地址、广播的发送方式,\"链接层\"就可以在多台计算机之间传送数据了。
网络层
由来:
物理层
1、可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。
1、每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做\"DHCP服务器\"
如果两台主机不在同一个子网络,那么事实上没有办法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的\"网关\"(gateway),让网关去处理
DHCP协议
广播:定义地址只是第一步,后面还有更多的步骤。首先,一块网卡怎么会知道另一块网卡的MAC地址?回答是有一种ARP协议,可以解决这个问题。以太网数据包必须知道接收方的MAC地址,然后才能发送。其次,就算有了MAC地址,系统怎样才能把数据包准确送到接收方?回答是以太网采用了一种很\"原始\"的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。
* 本机IP地址
用物理手段把电脑连接起来,例如光缆、电缆、双绞线、无线电波等。主要规定了网络的一些电气特性,作用是负责传送0和1的电信号
应用层的作用,就是规定应用程序的数据格式
所谓\"动态IP地址\",指计算机开机后,会自动分配到一个IP地址,不用人为设定。它使用的协议叫做DHCP协议
以太网数据 + IP数据
用户态:
2.前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。有了MAC地址,就可以定位网卡和数据包的路径了。
举例:
协议规定
我们可以用ARP协议,得到对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个\"广播\"地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。
传输层功能:
UDP协议
Date :2017-12-08 Fri
UDP Head
IP地址
2、新的计算机加入网络,必须向\"DHCP服务器\"发送一个\"DHCP请求\"数据包,申请IP地址和相关的网络参数
动态IP的实现
链路层
上面的过程没有提到DNS服务器怎么知道\"根域名服务器\"的IP地址。因为根域名服务器\"的NS记录和IP地址一般是不会变化的,所以内置在DNS服务器里面
DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本
Head:包含数据包的一些说明项,比如发送者,接收者,数据类型等,标头长度固定为18字节
* 网关IP地址
10101100
最前面的\"以太网标头\",设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。
11111110
有一些公网的DNS服务器,也可以使用,其中最有名的就是Google的8.8.8.8和Level 3的4.2.2.2
IP数据报
互联网5层模型
DNS服务器根据域名的层级,进行分级查询
0 条评论
下一页