什么是互联网协议及为何要有互联网协议
互联网协议:计算机之间通信的标准
为什么要有互联网协议:
osi五层模型:
IOS划分模型如下图所示:
物理层
功能:通过线(光缆、电缆、双绞线……)将两台机器连接起来,基于电器特性发送0、1高低电平。
数据链路层
功能:定义电信号分组形式(多少电信号一组,每组都是什么意思)
*补充*:每组电信号构成一个数据包,叫做“帧”
每组数据帧 分成:报头head和数据date两部分
hade=源+目标地址
mac地址:
发送端和接收端的地址便是指网卡的地址,即mac地址
(MAC是唯一的物理地址,由网卡生产厂商决定)
ethernet规定接入internet的设备都必须具备网卡,
广播:
MAC地址+广播=两台计算机就可以广播通信,(在局域网内)
网络层
**在一个局域网内,两台电脑通过广播的形式就可以通信了!
不在一个局域网内的两台电脑单靠广播已经不能顺利的通信了,这个问题由网络层来解决。
**不同的局域网之间,信息传递是通过路由器的转发完成的。路由器怎样才能顺利地找到目
标局域网呢?
**网络应用层就引用一套新的地址来区分不同的广播域/子网,这套地址即网络地址(IP协议来规定)
IP协议:规定网络地址的协议。
IP地址分为两部分:
网络部分:表示子网(确定哪些地址在同一个子网络)
主机部分:标识主机(每台计算机分配IP地址)
子网掩码:知道了子网掩码 我们就能判断,任意两个IP地址是否处于同一个子网。(IP与子网掩码进行AND运算得到的结果为此台机器的网络地址,网络地址相同代表两台机器在同一个区域内。
**通信是基于mac的广播方式实现
ARP协议:广播的方式发送数据包,获取目标主机MAC地址
IP协议:标识通信主机的局域网信息
IP+WAC=定位计算机的位置信息,
即 IP+ARP协议=定位计算机
*补充*
网关:跨子网 信息传递 (路由器)
运输层
通过IP地址(网络地址)和MAC(物理地址)就可以找到互联网中的某一台主机,怎样实现两个应用程序之间的通信呢?答案就是端口,端口即应用程序与网卡关联的编号。
运输层功能:建立端口(唯一的应用程序)到端口的通信
端口:一堆数据 0—65535
0—1024系统占用
(MAC+)IP+端口=两台计算机上的两个应用程序 通讯
运输层上的协议
TCP协议:双向链接(数据传输更安全)
建立数据连接(三次握手)、传输数据、断开连接(四次握手)
UDP协议:只发数据,没有确定信息
TCP协议:
应用层
应用程序是属于应用层的,应用程序多种多样,应用数据也是多种多样的,所以必须规定好数据的组织形式即把应用程序产生的数据按一定的规则打一个包
用户上网流程
用户上网的实质:是两台(或多台)计算机上的应用程序进行通信(上传或者下载数据)。
怎样实现有序快捷的通信呢?需要osi五层模型中的具体协议(通信规则)的帮助。
例如:我要用电脑给我的QQ好友发送消息
应用层:负责把发送给好友的数据进行打包封装
运输层:把应用层打包封装好的数据,在进行封装。封装的目的:找到彼此电脑上的QQ应
用程序。
网络层:由运输层封装好的数据,再由网络层封装(I这套封装由IP协议来规定)(ARP协
议可以直接找到目标MAC地址)。找到好友电脑在互联网中位置。
链路层:找到好友的MAC地址,即好友电脑的具体位置。
物理层:数据转换成01电平,通过物理连接发送出去。
数据封装完成后,物理层把信息传递给QQ好友。对方再按照由下到上的方式进行拆包,即物理层→链路层→网络层→运输层→应用层 收到我发送的QQ消息。
→
→
网络通信实现
DHCP:负责动态发送IP,配送网络信息
DNS:域名解析 成 IP(平时输入的网址是域名)
递归查询
迭代查询
- Socket抽象层: