热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机网络基础入门

计算机网络行业相关技术相关开发非开发非技术云计算开发工程师Linux基础企业服务运维自动化高级运维技能网络数据网络文字图像视频声音OSI七层模型应用层L7*表示层L6会话层L5传输


计算机网络

  • 行业相关
    • 技术相关
      • 开发
      • 非开发
    • 非技术
  • 云计算开发工程师
    • Linux基础
    • 企业服务
    • 运维自动化
    • 高级运维技能
  • 网络
    • 数据网络
      • 文字
      • 图像
      • 视频
      • 声音
  • OSI七层模型
    • 应用层 L7*
    • 表示层 L6
    • 会话层 L5
    • 传输层 L4*
    • 网络层 L3*
    • 数据链路层 L2*
    • 物理层 L1
    • 补充
      • DoD模型
      • TCP
      • 三次握手
      • 序列号与确认号
      • 四次挥手
      • TCP有限状态机
      • TCP滑动窗口
      • UDP
      • IP
        • 网络位
        • 子网掩码
        • 主机位
      • ARP


行业相关


技术相关


开发


  • 前端

html
css
Javascript
相关框架

  • 后端

php
java
python

  • 全栈
  • 其他开发

非开发


  • 甲方

* 运维工程师
* 腾讯
* 美团

  • 乙方

* 实施工程师
* 技术支持
* 华为
* 深信服
* 绿盟
* easystack
* 神州数码
* 华讯

非技术


  • 管理岗
  • 销售
  • 文员

云计算开发工程师


Linux基础


企业服务


  • 网站
  • 数据库
  • 缓存

运维自动化


  • 脚本
  • 监控
  • 自动化工具

高级运维技能


  • 版本控制
  • 网络安全

网络


数据网络

数据=信息,信息的传递组成了数据网络。

信息通过物理介质从一台设备传递到另外一台设备。


  • 网线,铜丝,高低电平,只能传递两种状态,1 0
  • 光纤,玻璃丝,有无光线,只能传递两种状态,1 0

数据如果想被传递,就必须转化为1 0 状态,也就是二进制。


文字

ascii 8bit(位)=1Byte(字符)unicode 32bit=4Byte 万国码utf-8 24bit=3ByteGBK(GB2312) 16bit=2Byte

图像

位图: 使用像素点来保存一张图片 ,放大会失真jpeg RGB 0-255png RGBA (A代表透明度)gifbmp...
矢量图: 使用数学公式,在坐标上画图,放大后不会失真aiesp...

视频

mp4(普遍)avirmvb(要有相应的版权才行,更加节省空间)...

声音

采样率

将各种信息编码转换为二进制,然后通过物理介质交换,组成了数据通信网络的基础原理。


OSI七层模型

为了更加方便的规范网络的分工我们将网络通信的过程定为7个层次,每个层次都有独立,但不是完全独立的功能设计


应用层 L7*

给用户提供交互接口


表示层 L6

对数据进行压缩,解压缩,编码,解码,加密,解密


会话层 L5

管理会话
网页的会话现在已经使用session来保持了,当你登录成功网站的时候,网站服务器就会产生一个session代码发给你,之后你就可以用这个代码去证明自己是对的人。
上面三层被称为高层,现在由socket进行统一管理,开发人员和软件不需要区分的那么详细。


传输层 L4*

** 将数据进行分段重组,对数据的传输进行控制,对数据的缺失进行检查,对系统服务进行区分**

通过网络层和数据链路层,数据已经可以准确的到达目的地的电脑上了,然而一台计算机可以同时多个任务一起运行,可以理解为计算机可以提供多个不同的服务。

计算机通过端口号port来识别不同的服务,以及使用端口号来作为应用区分。

端口号有大家约定好的端口号功能

访问一个地址的时候,一般会写成协议名://地址
windows系统会在C:/Windows/System32/drivers/etc/service文件中查找这个协议,然后找到对应的端口号

传输层会将数据进行分段,分段的好处有


  • 可以共享带宽
  • 当传输中断的时候可以做到断点重传

传输层在设计的时候就需要对数据进行分段和重组,为了保障数据的完整性,还需要对重组的数据进行验证。

传输层用于规范数据的传输方式,提供端口号用于区分不同的应用。

如果遇到4层的防火墙,或者相关的应用,就说明可以对应用进行识别。

分段重组为了更好的共享和管理网络,我们会对数据进行分段,并且在接受到之后进行重组在网卡上我们规定了最大传输单元,正常情况下是1500字节定义数据的传输方式TCP可靠的数据传输,所有重要的数据都必须得到对方的确认三次握手https://iproute.cn/2020/03/06/TCP-%E6%9C%89%E9%99%90%E7%8A%B6%E6%80%81%E6%9C%BA/ 四次挥手确认号与序列号用于保障数据的可靠传输四次挥手滑动窗口UDP尽力而为的数据传输,所有的数据都不需要被对方确认端口号一个IP地址有65536个端口号,每个端口号都允许运行一个服务在电脑上一个进程可以占用一个或者多个端口号,当有数据到达对应端口号的时候,就可以获得对应进程的处理常用的端口号:C:\Windows\System32\drivers\etc\servicehttp: 80/tcphttps: 443/tcp/udpssh: 22/tcptelnet: 23/tcp ftp: 20/tcp 21/tcpdns: 53/tcp/udprdp: 3389/tcp/udpvnc: 5900/tcp

网络层 L3*

网络层是用于连接各个不同局域网的

MAC地址是网卡出厂自带的,但是具体使用的位置未知。
逻辑地址IP,Internet Protocol,用于标识设备在网络上的唯一位置
在实际数据转发的过程中,可以理解为邮政编码,网络上的路由器设备会根据IP地址来转发,最终将数据转发到目的设备所在的局域网,转发到局域网之后的操作就是由局域网内的设备来操作。
路由器连接多个局域网,然后根据每个局域网标识的IP地址段来转发数据。通过IP地址可以识别出不同的局域网,并且使用路由器设备进行数据的远距离转发

IP地址由32位二进制组成,是一个逻辑地址,和MAC不一样,MAC地址是跟着设备走的,类似于你的名字IP地址是根据网络位置不一样而变化的MAC地址相当于你的姓名,IP地址相当于你的位置,只有在IP地址所在的局域网才可以找到你的MAC地址IP地址的组成网络位用于标识IP地址所属的局域网如果主机的IP地址网络位是一样的,那就表示这些主机是处于同一个局域网的网络位由子网掩码来标识长度,子网掩码是32位二进制,可以与IP地址一一对应子网掩码位为1表示IP地址对应的位就是网络位主机位用于在同一个网络中区分不同网络节点的主机位全为0,表示这个地址是网段号主机位全为1,表示这个地址是广播地址

数据链路层 L2*

负责将物理层的二进制进行成帧
一般认为物理层是不可靠的,会由于外接因素丢数据。

数据链路层会通过CRC循环冗余校验对所有的二进制进行计算,并且和数据帧尾部的FCS(帧尾校验序列)进行比对。
负责校验数据帧中的目的地址是不是本机,如果不是,就丢弃。

数据链路层将目的地址+源地址+类型+数据+FCS,一起生成二进制,传递给物理层或者将物理层的二进制校验结束,然后把数据提取出来,交给网络层类型字段用于告知计算机上层应用应该如何理解数据,也即用来告诉计算机上层的二进制使用什么标准去读取MAC地址(media access control),是网卡上厂商设置的,并且是全球唯一的*,由48位二进制组成,按照8位一组,用16进制表示。在windows上按下"田+R",输入"ncpa.cpl",然后双击WLAN,查看详细信息,里面有物理地址,就是MAC地址MAC地址48位二进制,前24位是组织唯一标识符,是由IEEE规定和颁发后24位由厂商根据生产和销售批次自定义

交换机构成局域网,局域网内的设备可以通过mac地址直接通信。


  • 可靠性
    通过CRC计算出校验值,接收方去比对校验值来排除物理层数据损坏的问题,如果发现数据损坏,就直接丢弃。
  • 可达性
    必须标注出来源和目的的MAC地址,用于数据可达。

物理层 L1

定义数据传输介质的电气标准

弱电工程师 综合布线线的质量和美观网线 传递高低电平 二进制五类 短距离千兆 1G超五类 2.5G六类 短距离万兆 10G超六类 建议不超过100M光纤 传递光信号 二进制多模 超过40KM 40G单模 超过100KM 100G接口电口RJ45RJ11BNC光口LCSC光模块SPFQSPF

补充


DoD模型

DoD模型是美国国防部定义的,可以看做精简版的OSI模型


TCP

tcp是传输层为了保障数据的可靠性而设计的协议,这个协议中包含通信过程和数据的格式这两种标准


三次握手

通过三次握手,可以让双方都确认到对方双向连通。

主机A起始产生随机序列号作为初始值,向主机B发起同步请求
主机B收到主机A的同步请求之后也产生随机初始值作为序列号,并且将主机A的序列号+1作为自己的确认号回复给对方
主机A收到主机B的请求之后,将对方的确认号作为自己的序列号,对方的序列号+1作为自己的确认号回复给对方。


序列号与确认号

序列号和确认号除了保障三次握手以外,最主要的功能就是保障数据的完整性,数据链路层的帧尾校验序列可以保障每一个二进制都是对的,但是却没法保障收到的数据总数是对的。

主机B收到主机A的数据之后,会将A的序列号+收到的数据字节数作为ACK回复给主机B
主机A以此来判断主机B是不是接受完整的数据


四次挥手

四次挥手需要保障双方都已经发送完毕


TCP有限状态机


TCP滑动窗口

TCP/IP详解有详细的内容,如果以后打算做网络底层开发建议看


UDP

发送数据的时候不需要对方确认,也不知道对方是否正确获得消息。


IP

IP地址是由网络位和主机位组成的,网络位相当于手机号码的前7位决定你的运营商和归属地,主机位用来区分在同一个运营商套餐归属地下的不同机主。

IP地址的网络位一样,说明在同一个局域网下,主机位用于标识在这个局域网下的主机。

IP是由32位二进制组成,为了方便记忆,每8位一个段,用.分开,将二进制转为十进制来便于使用。


网络位

早期的时候,人们想了一个馊主意来快速识别是否在一个局域网,那就是给IP地址分类,不同的类别网络位是固定的。

A 1.0.0.0~126.255.255.255 网络位就是前8位,记作/8
B 128.0.0.0~191.255.255.255 网络位就是前16位,记作/16
C 192.0.0.0~223.255.255.255 网络位就是前24位,记作/24
127开头的所有合法地址都被保留用作本地测试

按照类别来判断网络位的行为被称为有类地址划分,这么做的缺点很明显,如果你公司被分配到一个A类的IP地址,那么你公司的这个局域网最多允许2^24个主机,就是一千六百多万台,而这么多主机在一个局域网是无法实现的。而你需要为这么多IP付钱。


子网掩码

后来人们想要自由的划分网络位的长度,但是怕别人不知道是多少位,所以就在IP地址后面加上子网掩码用于标识,子网掩码有两种标识方式:


  • 子网掩码

32位二进制和IP地址长度一样,就可以一一对应。
子网掩码位是1,表示对应IP位是网络位。

00001010 00000011 00000000 01011000
这个是IP地址10.3.0.88
11111111 11111111 11111111 11111100
这个是子网掩码255.255.255.252

  • 前缀长度

直接把网络位长度标识在IP地址后面10.3.0.88/30


主机位

主机位全为0,保留下来,用于标识整个局域网,称为网段,比如192.168.1.0/24可以表示你家的所有主机。

主机位全为1,保留下来,用于在本局域网中发送广播,比如192.168.1.255/24这个地址可以向整个局域网所有节点发送


ARP

Address Resolution Protocol,地址解析协议,知道对方的IP地址,不知道对方的MAC地址,就会发送一个广播用于查询,当查询到了之后,就会记录在arp表格中下次使用。


推荐阅读
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • 智慧博物馆信息系统建设方案
    3.信息化系统建设3.1博物馆RFID藏品管理系统3.1.1系统概述博物馆藏品保管是一项十分复杂又繁琐的工作。从事保管工作除了经常、及时地进行藏品的登记、分类、编目、保养和修 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 寻求更强大的身份和访问管理(IAM)平台的企业正在转向云,并接受身份即服务(IDaaS)的灵活性。要为IAM选择正确的场外解决方案,业务管理人员和IT专业人员必须在实施之前评估安全 ... [详细]
author-avatar
百脑汇惠州店_956
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有