文章目录

  • 1.计算机网络
  • 2.OSI七层协议
  • 3.物理层
  • 4.数据链路层
    • 4.1以太网协议
    • 4.2以太网通信
  • 5.常见硬件
  • 6.网络层
    • 6.1IP协议
    • 6.2IP协议的作用
      • 1.IP地址结构
      • 2.子网划分
      • 3.IP数据包
      • 4.ARP协议
  • 7.传输层
    • 7.1端口
    • 7.2tcp协议
    • 7.3udp协议
    • 7.4半连接池
    • 7.5syn洪水攻击
  • 8.应用层
  • 9.网络通信dhcp
    • 9.1通信四要素
    • 9.2获取ip地址
  • 10.DNS解析
    • 10.1查询方式
    • 10.2DNS缓存
  • 11.通信流程

1.计算机网络

什么是网络:
网络是硬件的物理连接,加上互联网协议构成。
构建一张覆盖世界的信息高速公路,方便了数据的传输与通信。
每台计算机都配置了一块网卡,网卡上有一个唯一标识mac

2.OSI七层协议

应表会传网数物.

3.物理层

提供一个物理连接接口(网线口 无线网卡),实现线路连接,收发电信号.(高低电平    010101)

4.数据链路层

1.规定了电信号的分组方式单纯的电信号,没有意义。所以创造一套规则'以太网协议',来规定电信号多少位为一组,每一组代表什么含义。
2.以太网协议规定了计算机必须有一块网卡.每一块网卡出厂时都被烧写上了世界唯一的mac地址,长度为48位二进制,通常用12位16进制数表示,12位16进制数 前六位:产商编号 后六位:流水线号.

4.1以太网协议

以太网协议(ethernet):
1.一组电信号构成一个数据 包/帧
2.每一数据帧分成:报头head和数据data两部分
* 接入internet的设备都必须要有网卡,发送端的网卡地址是mac地址。数据帧:报头head:
固定18个字节包含:
1.发送者/源地址    6个字节
2.接收者/目标地址  6个字节
3.数据类型         6个字节数据date:
最短46个字节,最长1500个字节一个数据帧,最短为64个字节,最长为1518个字节,
如果数据帧超出限制会进行分片发送.

4.2以太网通信

局域网广播通信
几台计算机接上一个交换机搭建一个局域网,局域网电脑之间通过mac地址通信,前提是需要拿到对方的mac地址。基于mac地址的数据传输问题
1.广播风暴:同一时间同一个局域网内很多电脑发广播,超出交互机的解析范围会出现宕机.
2.mac地址不能跨局域网传输
计算机1发送一个信息给计算机2:
1.计算机1发送(源地址+目标地址+···)给交换机,
2.交换机查看源地址记录下来,在查看目标地址,
3.那么多台电脑它也不知道,它会复制n份,每一台电脑都发一份,[FF.FF.FF.FF 源mac,目标mac···]
4.每台电脑都解析这个信息,分析到目标mac是否与自己mac地址一样,
5.如果一样则放回信息给交换机,交换机会记录下他的mac地址,建立通信。
* 交换机拥有mac地址学习功能,会记录下所有通信的计算机mac地址。
* 以太网包只能在一个局域网内发送,一个局域网是一个广播域。

5.常见硬件

交换机:能够使接入该机器的所有计算机之间彼此互联
路由器:能够连接多个局域网并实现局域网之间的数据传输
局域网:由交换机组成的网络
互联网:可以简单的理解为是多个局域网之间彼此互联

6.网络层

网络把彼此隔离的局域网相互连通。规定一套网络地址(ip协议)区分不同的局域网。
通过ip地址找到局域网,再通过mac地址找到主机.

6.1IP协议

IP协议:
1.IP协议定义的地址称为IP地址,目前采用ipv4,用32位2进制表示。
2.范围在0.0.0.0 - 255.255.255.255 (四段十进制法表示)

6.2IP协议的作用

ip协议的两个主要作用:
1.为每个联网的局域网,每一台电脑分配ip地址
2.判断ip地址是否在同一个子网中
* 在局域网中判断是否为一个子网
* 再外网找到主机所在的子网(局域网 )
1.IP地址结构
公网IP与私网IP
公网IP需要花钱购买并申请
私网IP自带的但是无法直接基于互联网访问ip地址分成两部分:
1.网络部分:标识子网   / 前 24位
2.主机部分:标识主机   / 后 8 位ip地址划分为5类:
IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。 1、A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,
网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,
每个网络能容纳1亿多个主机。 2、B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,
地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。 3、 C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。
范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。 4、 D类地址用于多点广播(Multicast)。
D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,
目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,
它标识共享同一协议的一组计算机。 5、 E类IP地址
以“llll0”开始,为将来使用保留。 全零(“0.0.0.0”)地址对应于当前主机。* 全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。

2.子网划分
通过子网掩码来判断两个ip是否在用一个子网.
子网掩码:表示子网络的特征的一个参数(一个ip地址的形式),32位二进制数字。
网络位24位全是1     主机位8位全是0   255.255.255.0 11111111.11111111.11111111.00000000
判断:
196.168.1.1
196.168.1.210ip地址与子网掩码做按位与计算
196.168.1.1     and  255.255.255.0
11000100.10101000.00000001.00000001
11111111.11111111.11111111.00000000
-----------------------------------
11000100.10101000.00000001.00000000    ----> 196.168.1.0  子网地址196.168.1.210
11000100.10101000.00000001.11010010
11111111.11111111.11111111.00000000
-----------------------------------
11000100.10101000.00000001.00000000   ----> 196.168.1.0  子网地址结果都是196.168.1.0它们是同一个子网中。
3.IP数据包
ip数据包直接放入以太网包的data部分 (以太网头 + 以太网数据包[ip头 ip数据  + 以太网数据])
分为两部分:
hend:长度20-60字节
data:最长65515字节
4.ARP协议
ARP协议:通过ip地址,获取目标主机的mac地址.(ip地址 + mac地址 --> 全世界独一无二的主机.)
(要么是局域网内的一台计算机的mac,要么就是网关的mac,不能是公网计算机的,使用前提需要知道对方的ip)
* IP协议给每个网络设备都分配器了ip地址
ARP协议首先通过ip地址和子网掩码区分出目标主机所在的子网
1.同一子网通过ip地址拿到目标主机的mac地址.
2.不同子网通过ip地址拿到网关的mac地址.
* 发arp的数据包,是尝试获取地址不是真正的直接发包过去.
计算机1 :192.168.1.1   计算机2: 196.168.1.8
同一子网,获取目标主机mac地址模拟发包:源地址   目标地址(不知道就发FF) 源ip         目标ip1:计算1的mac地址  FF.FF.FF.FF.FF.FF 196.168.1.1/24  196.168.1.8/24
2:所有电脑都收到该arp包,如果目标ip 196.168.1.8 是自己,就返回mac地址
计算机1 :192.168.1.1   计算机2 :172.155.6.12
不同子网,获取网关mac模拟发包:源地址   网关地址 (不知道就发FF) 源ip       网关ip地址
1:计算1的mac地址  FF.FF.FF.FF.FF.FF 196.168.1.1/24  网关ip地址
2:所有电脑都收到该arp包,碰到FF,大家都知道对象想获取自己的mac地址,如果目标ip是自己,
就返回mac地址.
3: 拿到网关的地址,将数据包给路由器去外网去找 172.155.6.12 的地址

7.传输层

7.1端口

端口是应用程序与网卡关联的编号。端口只要求在本机唯一,0-65535,0-1024被系统应用占用.端口协议范围:0~65535特性:动态分配eg:第一次运行微信 系统随机取一个端口号2022然后关闭微信重新启动 系统随机取一个端口号端口号基本使用0~1024系统默认需要使用的端口号1024~8000常见软件端口号以后我们开发的软件最后使用8000之后的端口号端口号(port):能够唯一标识一台计算机上面正在运行的一款应用程序
端口号在同一台计算机同一时刻不能重复ip + mac + port 能够唯一标识世界上某一台接入互联网的计算机上面的某一个正在运行的应用程序

7.2tcp协议

tcp协议-->可靠协议
tcp数据包没有长度限制,但是为了保证网络的效率,不会超过ip数据包的长度。以确保单个tcp数据包不必再分割。
以太网头--->ip头--->tcp头--->数据
tcp的三次握手与四次挥手
三次握手,建立双向通路。
第一次:客户端访问服务端,发送请求,服务端好人协议,谁访问都允许,同意访问。
第二次:服务端允许访问信息的的同时返回请求访问客户端,客户端收到访问结果(建立第一条通路),
也收到访问的请求,允许服务端的访问。
第三次:客户端返回消息,服务端收到。(建立第二条通路)。
之后正常通信。四次挥手
第一次: 客户端发信息给服务端断开联系请求。
第二次:服务端返回同意客服端断开服务端的请求。(断开第一条通路)
第三次:服务端把所有数据发送给客户端后发送断开联系请求。
第四次:客户端返回同意服务端断开服务端的请求。(断开第二条通路)

7.3udp协议

udp协议-->不可靠协议
udp报头一共8个字节,总长度不会超过65535个字节,正好放进一个ip数据包
以太网头--->ip头--->upd头--->数据为什么不可靠:
传数据快,不等对方回复就传数据.也不知道对方收到没.

7.4半连接池

backlog半连接池
服务端的访问是在半连接池队列排序,先进先出,依次服务。
在高并发下,同时很多用户访问需要把半连接池的适当值调大。

7.5syn洪水攻击

syn洪水攻击:利用服务端的好人协议,制作大量的访问请求,
务端在同一时间接收到了大量的要求建立链接的请求,访问一直爆满,使用户无法正常访问.

8.应用层

都是人为自定义的协议标准 可遵循可不遵循
HTTP协议 FTP协议 ...
cocket套接字软件:基于网络通信的应用程序向下调用接口的工具。

9.网络通信dhcp

9.1通信四要素

想要实现网络通信,每台主机需要具备的四要素:
1.本机的ip地址
2.子网掩码
3.网关的ip地址
4.DNS的ip地址

9.2获取ip地址

获取的方式:
1.手动配置-->静态获取
2.动态获取-->dhcp系统软件dhcp开机获取步骤
以太网头--->ip头--->udp头--->dhcp数据包1.以太网头
源mac--->目标mac(不知道,送广播:FF.FF.FF.FF.FF.FF)
2.ip头
两者都不知道,源ip:0.0.0.0---->255.255.255.255
3.udp头
ddp定义好了发送端为68,接收端为67.数据包构造好后发出,以太网通过广播发送,通同一个子网钟全部计算机收到这个包,
所有计算机分析包,只有DHCP知道ip 发送者0.0.0.0,接收者255.255.255.255是发给自己了,做出回应.

10.DNS解析

域名解析,负责域名解释成ip地址。
分级存放全部的ip地址.

10.1查询方式

DNS查询方式:
查询顺序:浏览器DNS缓存-->本地DNS缓存-->计算机HOST文件-->ISP DNS缓存-->递归or迭代1.递归查询
电脑-->本地域名服务器-->根服务器-->顶级域名-->权限域名
权限域名-->顶级域名-->-->根服务器-->本地域名服务器-->电脑2.迭代查询
电脑-->本地域名服务器
本地域名服务器-->根服务器-->本地域名服务器
本地域名服务器-->顶级域名-->本地域名服务器
本地域名服务器-->权限域名-->本地域名服务器
本地域名服务器-->电脑

10.2DNS缓存

DNS缓存:
在查询域名返回了正确的ip后,系统会将这个结果临时存放起来,n小时后失效,
在这n小时内再次访问这个网站,系统会直接从本地电脑DNS缓存钟获取ip地址,
而不必在去NDS服务器查询,变相加快网址解析。DNS缓存分类:1.浏览器NDS(内存中):按一定频率缓存记录2.本地操作系统DNS缓存(硬盘中)3.本地HOSTS文件(硬盘中)4.路由器指定的NDS(远程)5.ISP的DNS(远程):运营商6.根服务器(跨国):全球13台
* NDS被篡改:把所有域名解析都定到同一个位置,但是ip可以直接访问。

11.通信流程

1.本机获取* 本机ip地址 :192.168.1.10* 子网掩码:   255.255.255.0* 网关的ip地址 192.168.1.1* NDS的ip地址  8.8.8.8
2.打开浏览器,访问www.Google.com
3.dns解析域名得到ip地址.
4.http部分内容·····被包裹在长度为4960字节的TCP数据包中.
5.TCP数据包设置端口
接收方(Google)的的默认端口是80,
本机1024-65535之间随机生成。
TCP数据包加上HTTP数据包,为49680个字节。
6.ip协议,tcp的数据包嵌入ip数据包,
本机ip 192.168.1.10
被访问者(Google)172.194.72.105
ip数据包加上TCP数据包,为5000个字节
7.以太网协议,ip数据包嵌入以太网数据包。
发送者mac地址,网关192.168.1.1(arp协议得到)
以太网数据包最大长度是1500字节
现在ip数据包为5000字节,加上以太网包5060个字节
ip包被分割成四个包1. 以太网标头 ip标头  TCP数据包  1500个字节2. 以太网标头 ip标头  TCP数据包  1500个字节3. 以太网标头 ip标头  TCP数据包  1500个字节5. 以太网标头 ip标头  TCP数据包  560个字节
8.服务端响应
经过多个网关的转发,(Google)的服务器收到这四个以太网数据包。
根据ip标头的序号,将四个包拼接,获取完整的tcp数据包,在读取http请求,
按照http做出响应,在用tcp协议发回去。
本机接单http响应,网页显示,完成一次网络通信。

42.OSI七层协议相关推荐

  1. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    阅读目录 一.网络编程 一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端 24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器 想 ...

  2. 网络编程之网络架构及其演变过程、互联网与互联网的组成、OSI七层协议、socket抽象层...

    目录 网络架构及其演变过程 单机架构 CS架构 BS架构 BS架构和CS架构的区别 C/S架构的优缺点: B/S架构的优缺点: 互联网与互联网的组成 互联网的组成(教科书版) 互联网的组成(科普版) ...

  3. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程     1.OSI七层协议     2.基于tcp协议的套接字通信     3.模拟ssh远程执行命令     4.tcp的粘包问题及解决方案     5.基于udp协 ...

  4. 网络编程之OSI七层协议略析

    OSI七层协议 1 物理连接层 用高低电平模拟二进制数0101 2 数据链路层 以太网协议,Ethernet,要求连入网络的计算机必要要有一块网卡,并且规定全球每一块网卡的mac 地址都不一样,用12 ...

  5. 网络编程之 osi七层协议

    内容目录: 1.软件开发架构 2.OSI七层协议 3.每层协议介绍 1.软件开发架构 c/s架构:c:客户端s:服务端 b/s架构:b:浏览器s:服务器 本质:b/s其实也是c/s 2.OSI七层协议 ...

  6. 网络编程 之osi七层协议

    osi 七层协议 : 应用层: 应用层功能:规定应用程序的数据格式 传输层:tcp协议可靠传输 tcp协议不可靠传输 设定端口,端口即应用程序与网卡关联的编号. 网络层: ip协议 网络部分:标识子网 ...

  7. 如何记住OSI七层协议模型,脑洞大开有木有?

    学过计算机网络的各位,一定知道OSI七层协议模型.OSI七层协议模型(或简称OSI七层模型),是一个定义得非常好的协议规范,被认为是现代开放性通信系统互连互通的标准参考模型.OSI模型有7层结构,每层 ...

  8. 网络七层协议:OSI七层协议大白话解读

    互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层.实际上这个七层是不存在的.没有这七层的概念,只是人为的划分而已.区分出来的目的只是让你明 ...

  9. 【网络编程】一、如何记住OSI七层协议模型,看完还记不住的来打我。

    学过计算机网络这门课的童鞋,一定都知道OSI七层协议模型. 那么现在闭上眼,能按顺序说出来的童鞋麻烦右上角点个赞,让博主看看有多少? 哇,0个赞,不是吧. 没关系,下面跟着博主的思路,看完本篇之后,我 ...

最新文章

  1. 10条PHP编程习惯助你找工作
  2. 解决weblogic Managed Server启动非常慢的情况
  3. 学生生涯---真的就这样逝去了!后悔已不足以!
  4. #每日播报# 8月6日 Github 热门项目汇总
  5. 存储知识课堂(二):磁盘读写磁头揭秘
  6. javascript基础:函数参数与闭包问题
  7. .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)...
  8. centos 6.8 下安装redmine(缺陷跟踪系统)
  9. android 4.2.2 jelly bean更新,Android 4.2.2 Jelly Bean更新已经发布:有何改变?
  10. 解封装(二):初始化解封装avformat_open_input,各参数分析,以及简单流程
  11. OracleHelper
  12. 人事档案管理系统介绍(二)
  13. AutoCAD坐标与图像坐标
  14. 常用求导公式 高阶导公式 莱布尼兹公式
  15. OEM、ODM、OBM分别是什么?
  16. FastAPI 教程翻译 - 用户指南 26 - 安全性
  17. css样式属性值无效问题
  18. 传奇玩家申请怪物攻城脚本
  19. Java 套接字(Socket)
  20. 分段存储管理+逻辑地址转化为物理地址+例题

热门文章

  1. DFSS项目选择方法研究(转载)
  2. 无惧高并发!Python+Redis分布式锁,让你的业务高效稳定!
  3. MySQL和SQLite根据生日算年龄
  4. 获取淘宝商品详情数据
  5. 初级C语言怎么快速上手,看这里就够了,如何学习初级C语言
  6. 环境配置-MAC快捷键设置
  7. python实现百度翻译功能
  8. 格力电器参与闻泰科技收购半导体,推进500亿“造芯”计划
  9. Word处理控件Aspose.Words功能演示:在Java中将Word文档以邮件形式发送
  10. ISP-Sharpen hisilicon调试方法