网络: 网络结构 云---网络
网络-- 七层协议/网络协议
1. 两台计算机如何连接在一起?
物理层:
(1)将计算机连接起来.{网线/无线网络/光缆/电缆 ---只能传递电信号.}
电信号:高(1)低(0) 电平
(2) 传递电信号(0和1)
规定了:网络连接设备的标准. 传输介质的速率。
物理层已经可以传递 0 和 1,101000001010000101010010
2. 数据链路层
单纯的 0 和 1 没有意义,必须规定 0 和 1 的解读方式。
将0 和1 分组,使0 和 1 有意义。规定0 和 1 的解读方式,提出了数据包的概念。
10100000 10100001 01010010
3. 以太网协议:局域网协议
4. 网络协议
(1)网络层
a. 网络地址: 网址/ip地址。 为计算机引入的一套地址机制,每一台计算机都有自己独一无二的ip地址
寻找Ip地址,路由器/交换机 -- 具有网络寻址功能
网络层:建立了 计算机 到 计算机 之间的通信。“主机” + “主机” 之间的通信。通过ip 地址建立。
ip 地址:IPv4协议IPv6协议 .
子网掩码:分为两个部分: 网络部分 + 主机部分
为了区分计算机所在的子网络,将IP地址和子网掩码做一个 And运算,得到的结果如果相同,就说明在同一个子网下
路由器:网关 计算机如果在不同的子网络直接发送信息,需要路由器帮忙发送。
DNS 服务器:解析域名. 将域名解析成ip地址。
通过ip地址,可以建立计算机到计算机之间的联系。
5. 计算机中有以下聊天软件,怎样知道一条聊天信息是发送给哪一个软件的呢?
聊天信息:学习学习 + 端口号:4321
qq: 1234
陌陌:2345
微信:3456
飞秋:5678
(对应端口号找到应用程序的)
网络/出入口:网卡,每一台计算机都有自己独一无二的网卡。 网卡负责接收和发送信息。
mac地址: 指的就是 网卡地址。
为了确认信息是发送给哪一个应用程序的,需要用到
传输层:
规定:给每一个使用网卡的应用程序一个编号,将这个编号作为区分应用程序使用网络的标志。
这个编号就是 “端口” 号。端口号的范围是0-65535,其中0-1024被系统占用。
80端口: http端口
传输层:建立端口 + 端口 之间的通信,端口到端口 也就是 应用程序到应用程序之间的通信
传输层协议:
tcp协议:安全协议。网络开发中使用最广泛的一些协议,三次握手协议(两台计算机建立连接,需要三步,断开需要4步)
udp协议:报文头协议。不安全,会丢包。效率较高。
6. 会话层
建立一套自动的网络连接的机制(自动管理数据的收发,自动建立应用程序 到 应用程序 之间的连接)
以后在面向会话层开发的时候,只关心网络会话层传递的是什么样的数据(只关心网络任务(如普通的数据请求/下载/上传)的类型)
7. 表示层
不同系统之间通信,语法问题怎么解决?---表示层就解决不同系统化之间通信的语法问题。
8. 应用层
规定了应用程序传输什么样的数据格式
{
常用传输协议:
url 协议下:
{
http: 超文本协议
file:本地文件协议
}
ftp:
mailto:邮件协议
}
数据包:流媒体/数据量比较大,将数据以包的形式发送,就像水流一样
数据传递的时候---使用数据包。
那么数据在网络中是以何种方式传递的?
在同一个子网络内:数据以广播的形式传递。
need-to-insert-img
1 要发送数据包给 2,但是数据包发送出去后,2/3/4/5都可以接收到,在数据包中包含了 2 的mac地址,各个电脑接收到数据包后,解析出Mac地址与自身的mac地址比对,如果是相符合就接收,否则就舍弃。
在不同的子网络之间:数据以路由的形式发送。
need-to-insert-img
左右两个子网络就是不同的子网络。
解释:
need-to-insert-img
1 要发送数据给 4,他们处于不同的子网络。
1 以广播的形式发送数据,发现 4 不在同一个子网络内,就把数据给 网关a,网关a以路由的形式(即以最短路径找到4),然后就找到 网关b,网关b把数据给 4 。这其中除了mac地址,还需要ip地址,因为使用了网关。
数据链路层:提出了数据包以太网协议
数据包: 以太网数据包,分为:
标头:18字节,将接收方和发送方的mac地址添加到标头部分。
数据:原来的数据。一般不超过1500字节。
网络层:建立主机到主机的联系。 ip地址。
ip数据包。将ip数据包嵌套在以太网数据包的数据部分。包括:
标头:双方的ip地址。ip域类型。20字节
数据:数据。一般<65535字节
传输层:tcpudp
(1)tcp数据包
(2)udp数据包
标头:双方的端口号
数据:传输数据包的棕大小一般<= 65535 个字节,目的就是为了一个ip数据包的数据部分恰好能够放下一个传输层数据包。
应用层:
主要处理传输的数据,不分包
处理数据包的时候,先处理ip部分,再处理mac地址。
数据包的拆分/拆包:
如果数据量比较大,一个数据包放不下,就会将数据拆分成不同的部分,放到多个数据包中分别发送。
组合包:客户端将服务器传回来的数据包,一个个按顺序组合在一起,得到自己想要的内容。
Socket:套接字/插座------------
socket不属于网络协议,是一个通信模型。在 unix 系统中,将 主机 + 端口 之间的通信就称为 socket 通信。
主机---ip地址端口: 应用程序
最常见的socket:
tcp/ip udp/ip
socket包含了七层协议中的:网络层/传输层,其实还包含了 会话层/表示层/应用层
oc没有对socket封装,自己写时用c来写。