网络协议-基础知识(笔记)
Posted 硫酸超
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络协议-基础知识(笔记)相关的知识,希望对你有一定的参考价值。
互联网
互联网的出现,彻底改变了人们的生活方式,足不出户就可以购物、聊天、看电影、买车票、上班等
思考:数据是如何从一个设备传递到另一个设备的?
这一切都是由网络协议来规定的。没有网络协议,就没有今天的互联网
为什么要学习网络协议
互联网、移动互联网、物联网,都离不开网络协议
最熟悉的网络协议:HTTP
为了满足各种需求,有各式各样的网络协议(HTTPS、SMTP、MQTT、RTMP等)
随着物联网、音视频、直播等领域的发展,企业提高对开发人员网络基本功的要求,经常问网络协议的面试题
TCP和UDP的区别?说一下它们的报文格式?
TCP的流量控制和和拥塞控制?TCP如何实现可靠性传输?
为什么连接是3次握手,关闭是4次挥手?
7层模型与4层模型的区别?每一层的作用是什么?
交换机与路由器的区别?
…
学习中需要搭建的环境
客户端-服务器开发环境
客户端:浏览器(html+CSS+JS)
服务器:Java
网络抓包
浏览器(Chrome、Firefox)、Fiddler、Wireshark
模拟工具
Xshell(只有Windows版)、Packet Tracer(注册地址)、GNS3
客户端-服务器
tomcat是由java开发的,所以需要包含在jvm里面,而jvm是Java Virtual Machine(Java虚拟机),用来运行java代码的,最终包含在服务器里面,与客户端进行数据的交互。
Java 的跨平台原理
如果一个代码可以在多个平台运行,那么就是跨平台
JVM(Java Virtual Machine):Java虚拟机
Java的跨平台:一次编译,到处运行
编译生成跟平台无关的字节码文件(calss文件),*.class 是字节码文件,操作系统是不会执行的
*.class由对应平台的JVM解析字节码为机器指令(010101)
如果代码有语法错误,将编译失败,并不会生成字节码文件
那就不会去运行一个JVM程序。最后导致Java程序运行失败
C\\C++ 的跨平台原理
C\\C++ 的跨平台:使用平台相关的编译器生成对应平台的可执行文件,在各个平台上有对应的编辑转化器,转成操作系统可以运行的格式
什么是协议
如果租房协议有一个国家(或国际)标准,会是怎样?
全世界统一标准,服务器可以知道客户端需要什么,客户端可以知道服务器返回了什么。
网络互连模型
为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型
OSI 参考模型(Open System Interconnect Reference Model),具有7层结构
请求过程
客户端由应用层从上到下逐一的封装,服务器由物理层从下到上逐一的拆分。
网络分层
计算机之间的通信基础
需要得知对方的IP地址
最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收
如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理
如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层进行处理
单工,半双工和全双工有何区别和联系
1.单工数据传输只支持数据在一个方向上传输;在同一时间只有一方能接受或发送信息,不能实现双向通信,举例:电视,广播。
2.半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送信息,可以实现双向通信。举例:对讲机。
3.全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发送信息,实现双向通信,举例:电话通信。
计算机之间的连接方式
计算机之间的连接方式-网线直连
需要用交叉线(不是直通线)
计算机之间的连接方式-同轴电缆(Coaxial)
◼ 半双工通信
◼ 容易冲突
◼ 不安全
◼ 中间断了,整个都瘫了
计算机之间的连接方式-集线器(Hub)
半双工通信
容易冲突
不安全
跟同轴电缆一样:没有智商
计算机之间的连接方式-网桥(Bridge)
思科网络模拟机相关命令:
arp -a 查看arp缓存表
arp -d 清除qrp缓存表
能够通过自学习得知每个接口那侧的MAC地址
从而起到隔绝冲突域的作用:因为网桥会根据自己所缓存的arp表判断是否放行数据包
计算机0ping计算机1过程(计算机0未知计算机1的MAC地址):
1、先通过ARP发送一个MAC地址为FFFF-FFFF-FFFF-FFFF的广播包寻找计算机1的MAC地址,通过集线器转发到计算机2和网桥
2、计算机2发现不是自己的ip地址,丢弃,而且不会记录计算机0的MAC地址
3、网桥得到了广播包,记录了计算机0的MAC地址,然后转发给计算机1
4、计算机1发现是自己的ip地址,接受并记录了计算机0的MAC地址与IP地址的映射
5、然后发现ARP广播包回去
6、计算机0接受到arp广播包后,确认计算机1已经收到了自己发的包,然后发送ICMP包再次确认
计算机之间的连接方式-交换机(Switch)
相当于接口更多的网桥
全双工通信
比集线器安全
思考
全球所有的设备都用交换机连接会是什么情况?
会导致很多计算机同时发送ARP包,造成广播风暴
计算机之间的连接方式-路由器(Router)
ping过程:
计算机0 ping 计算机1
计算机0发现计算机1的网段与自己不在同一个网段,然后没有设置网关,所以不进行任何操作
计算机6 ping 计算机1
1、计算机0发现计算机1的网段与自己不在同一个网段,然后设置了网关,所以将arp包的目的ip地址变成网关的ip地址,然后进行广播
2、通过集线器发送到路由器,路由器发现目的ip地址是自己的端口网关,接受后返回自己接口的mac地址,然后发arp包给回计算机0
3、计算机0得到网关的mac地址,然后发送icmp包(目的mac地址是网关接口的mac地址)给计算机1
注意
网线直连、同轴电缆、集线器、网桥、交换机
连接的设备必须在同一网段,连接的设备处在同一广播域
集线器、网桥、交换机不关心ip地址,只关心MAC地址
路由器可以在不同网段之间转发数据,而且只能是不断网段,因为是隔绝广播域的
笔记内容大部分来自于小码哥教育
以上是关于网络协议-基础知识(笔记)的主要内容,如果未能解决你的问题,请参考以下文章