网络基础知识

来源:互联网 发布:c语言循环从1加到100 编辑:程序博客网 时间:2024/06/05 11:11

休假一天好好学习了网络协议基础。

第一点:分层

osi模型:
 物理层: 透明地传输比特流
 数据链路层: 建立逻辑连接、进行硬件地址寻址、差错效验等功能。
 网络层: 进行逻辑地址寻址,实现不同网络之间的路径选择。
 传输层: 定义传输数据的协议端口号,以及流控和差错效验。
 会话层: 建立、管理、终止会话。(在五层模型里面已经合并到了应用层) 对应主机进程,指本地主机与远程主机正在进行的会话
 表示层: 数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
 应用层: 网络服务与最终用户的一个接口。


tcp/ip模型:

协议数据分层主要是为了抽象,不管分几层都是可以的,精确来分可以分为以下四层: 

1.应用层:主要是规定应用程序的数据格式,主要协议有http协议 http协议数据主要包括请求头,请求体,空行,请求数据 

2.传输层:主要是将应用层封装的http请求包嵌入传输层,传输给下一层,传输层主要分为tcp协议和udp协议

区别:

udp只需要知道发送方和接收方的ip和mac地址就可以传输数据,效率更快,适合于实时传输直播等,对数据安全性要求不高的场景,但是不能保证大量数据的传输和保证数据安全性

tcp:是面向连接的安全传输协议,理论上数据包没有长度限制,但是为了保证网络的效率,通常数据包大小不会超过ip数据包的长度

3.网络层通过以太网协议,主要是依靠mac网卡地址分发数据,但是这样广播发送数据的方式会给每台机器都会发送一份数据包(同一个网络下),如果不是同一个网络下就需要路由方式发送,但是mac地址本身无法完成这件事,所以就需要引进一套新的地址,使得我们能区分不同计算机是否是在同一个网路下,这就是网络层的由来**

ip协议: ip协议定义的地址就是IP地址,目前广泛采用ip协议第四版,即ipv4,现在也国家出台政策ipv6马上也要推行出来。

习惯上,我们分成四段的十进制数为一个ip地址,范围为0.0.0.0-255.255.255.255,互联网上每个机器都会分配一个ip地址,由网络地址和主机地址组成,但是简单的从ip地址是无法识别两台机器是不是在同一个网络下,这样就引进了子网掩码,形式上和ip地址一样,为32位二进制数字,它的网络部分全是1,主机部分全是0,比如,IP地址172.16.254.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

总结:
区分是不是同一个网路:将两个ip地址和子网掩码做and与运算,1和1为1,结果如果相同则为在同一个网络下。

所以ip协议两个作用:一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络

4.网络接入层

早起每家电脑够公司都是以电信号为分组方式,渐渐以太网为主要协议诞生了,以太网主要由一组电信号组成一个数据包,叫做帧,每一个帧分标头和数据,标头主要记录数据包的说明项例如发送接受者,数据类型等,数据包主要是数据具体内容。
标头中的发送者和接受者如何识别呢,以太网协议规定,连入网路的设备必须配备网卡,数据包就是从这个网卡传输到另一个网卡,网卡地址就是数据包发送和接受的地址,这个地址就是MAC地址,每个MAC地址在出厂时就是独一无二的长度是48个二进制位,通常用12个十六进制数表示。前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。
接下来有了网卡地址,如何识别另一台网卡地址呢?
第一:原始以太网广播的方式,给当前网络下的所有机器都发送这个数据包,然后每个机器都能收到该数据包,通过数据帧中的接受mac地址和自己的机器地址相比,如果一样,则接受,否则拒绝;
第二:
ARP协议:通过ip找到mac地址,仅限同一个网络下,发送一个数据包,标头主要为ip和网卡地址
(fff.fff.fff.fff)表示给所有的机器都发送,相当于广播的方式
不再一个网络下:可以通过网关转发

第二点:如何应用

一般情况一台计算机需要连接网络需要以下四个参数:
主机ip地址,子网掩码地址,dns地址,网关ip地址
有了以上正确的地址后就可以连接到网上了。

以下以访问goole为例:

输入www.goole.com为例,
第一步:解析域名:dns服务器解析goole.com域名的ip为172.194.72.105
第二步:判断是不是同一个网络下,已知本机的子网掩码是255.255.255.0,本机用自己的ip和该子网掩码做与and运算,然后用goole的ip也和该子网掩码做yu运算,值一样说明在一个网络下,如果不是就需要网关来进行转发,也就说接收方mac地址为网关的mac地址;
第三步:协议数据传输,
应用层的http协议数据嵌入传输层的tcp/udp协议数据包中,:http协议数据数据为请求相关数据;
然后通过网络层的ip协议再见将tcp数据包嵌入到ip数据包中:tcp协议数据为传输层sq,fin,ack等数据;
最后再嵌入到以太网协议数据包中,ip数据包为ip地址的端口号;以太网协议数据为发送方和接收方的mac地址
第四步:经过网关的转发,以太网数据包请求到了goole的服务器,根据IP标头的序号,Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的"HTTP请求",接着做出"HTTP响应",再用TCP协议发回来。
第五步:相应渲染界面实现。


补充知识:
ip分类:
A:由一个字节的网络地址和三个主机地址组成,1.0.0.1-126.255.255.254
B:  由两个网络字节和两个主机地址组成,最高位为:‘10’,128.1.0.1-191.255.255.254;
C:  由三个网络字节和一个主机地址组成,最高位为:‘110’,192.0.1.1-223.255.255.254
D:  第一个字节以“1110”开始,它是一个专门保留的地址,地址范围224.0.0.1-239.255.255.254;
E:  IP地址以“1111”开始,为将来使用保留。

原创粉丝点击