最近在学习/复习软件工程师必备的技能------ HTTP网络协议,一共是22课,计划写4份学习笔记。(内容会自我完善,方便自己查阅)
1.基本概念
2.集线器网桥交换机
3.MAC地址IP地址子网掩码
4.超网_静态路由
5.局域网_NAT
HTTP网络协议
1.基本概念
流媒体,可跨平台(前端、iOS、android)
即时通讯,需要看搞后端还是客户端
互联网
Q:数据是如何从一个设备传递到另一个设备?
A:通过网络协议来规定的,没有网络协议,就没有今天的互联网
各种各样的网络协议:HTTP、HTTPS、SMTP、MQTT、RTMP
Q:TCP和UDP的区别?说一下它们的报文格式
Q:TCP的流量控制和拥塞控制?TCP如何实现可靠性传输?
Q:为什么连接是3次握手,4次挥手?
Q:7层模型和4层模型的区别?每一层的作用是什么?
Q:交换机与路由器的区别?
网络抓包
浏览器:(Chrome、Firefox)、 Fiddler、Wireshark
模拟工具:Xshell(只有Windows 版)
JAVA 25年了,生态圈很成熟。 GO新起之秀,短时间不可能打败JAVA,不成熟。
C/C++ 跨平台:(.c/.cpp文件)
-> 一份代码能跑多个平台(操作系统),效果基本一样。
原理:进行不同平台编译成不同格式的文件。
Windows:PE格式 0101加到内存中
Mac:Mach-O 格式
Linux:ELF格式
JAVA跨平台原理:.java — 编译 —.class (跟平台无关的字节码文件,不是可执行文件)
-> 一次编译,到处执行
编译成跟平台无关的字节码文件(class文件)
JVM:Java Virtual Machine 软件,JAVA虚拟机。Oracle提供(JAVA官方Sun公司,2009以74亿美元被Oracle收购) (有JDK,就有JRE,就能使用JVM)
Windows:启动JVM,加载字节码文件到内存中,并解析,转成0101机器指令
Mac:同上
Linux:同上
客户端 | 服务器 |
---|---|
CPU、内存、散热要求高 | |
多端口:80端口运行软件(服务器软件:作用占用某个端口,为了监听端口网络数据流通),拿到数据,解析,返回数据。 ———————— 怕服务器软件撑不住,再加一个端口8080。 | |
安装服务器软件Tomcat(免费开源),启动JVM— 启动Tomcat — 把JAVA代码执行 (bin目录,startup.bat Windows 系统启动,startup.sh Linx 系统启动) | |
http://IP地址:端口号/项目 |
什么是协议?约束双方,减少沟通成本。
国际标准化组织ISO,1985年制定了网络互联模型
OSI参考模型 Open System Interconnect Reference Model,具有7层。
TCP/IP 协议:实际应用参考模型
2.集线器网桥交换机
搭建JAVA服务器开发环境
网络中的一些基本概念
MAC地址、IP地址、路由器、交换机
HTML CSS JS基础
Sevlet: JSP API Sevlet API
JAVA里的包类似C++、C#的namespace
计算机之间的通信基础
1.需要知道IP地址
2.网卡:接受数据,MAC地址(网卡地址)(交换机解析拿到网卡地址)
不在同一个网段,路由器的功能是把他们连接不同的网段
ARP协议,广播(广播是在同一个网段中实现的)ARP是有缓存的
发广播的目的:获取对方的MAC地址,同一网段所有网卡都能接收
ICMP
网线直联:交叉线(不是直线)
同轴电缆:半双工通信(基本已淘汰)信号可能会叠加、冲突,需要等待时机。不安全,有冲突域
集线器hub: 半双工通信,容易冲突,不安全,跟同轴电缆一样没有智商。(没有存储功能,计算机才有缓存)(同轴电缆升级版,理解为把线连在一起)缺点:占用带宽,占用线路
网桥(Bridge):连接同一个网段,记录MAC地址
它能通过自学习得知每个接口那侧的MAC地址
从而起到隔离冲突域的作用
STP 生成树协议
交换机(Switch-PT ):局域网的最终方案(跨网段用路由器)有记忆功能
相当于接口更多的网
全双工通信
可设置上网的MAC地址
路由器(Router):可以在不同网段之间转发数据
隔绝广播域
3.MAC地址IP地址子网掩码
总结:
网线直连、同轴电缆、网桥、交换机
连接的设备必须在同一网段
连接的设备处在同一广播域
路由器
可以在不同的网段之间转发数据
隔绝广播域
路由器提供网关
网关:帮助跨网段
MAC地址
每个网卡都有一个6字节(48bit)的MAC地址 (Media Access Control Address)
1个16 进制 = 4 个 2进制, 2个16进制 = 8 个 2进制
40-55-82 A1-8C-62
全球唯一,固化在了网卡的ROM中,由IEEE802标准规定
前3字节:OUI(Organizationally Unique Identifier),组织唯一标识符
IEE注册管理机构分配给厂商
后3字节:网络接口标识符
由厂商自行分配
当48位全为1时,为广播地址
硬件是全球唯一的,操作系统可以更换MAC地址(可以自行修改电脑里的MAC地址)
Pyhsical Address
动态存两分钟,静态很久(操作系统不一样,时间可能不一样)
IP地址 Internet Protocol Address
IPv4,32bit(4字节),2019.11.25,全球的IP地址已用完
IPv6,128biit(16字节)
IP地址:网络ID + 主机ID
网段计算:IP地址 子网掩码,按位与运算可以得出
IP地址:192.168.1.10
子网掩码:255.255.255.0
1100 0000.1010 1000.0000 0001.0000 1010
& 1111 1111.1111 1111.1111 1111.0000 0000
————————————————————————
1100 0000.1010 1000.0000 0001.0000 0000
-> 192.168.1.0 网段
IP地址:130.168.1.10
子网掩码:255.255.0.0
网段:130.168.0.0
256 + 256 - 2 (130.168.0.0网段\130.168.255.255 这个是广播地址)
A类 (0-127 8)120.255.255.255 最大主机数:256256256 - 2 = 2的24次方 - 2 = 16777214
B类 (128-191 16) 256256 -2 = 2 的 16次方 - 2 = 65534
C类(192-223 24) 最常见,256 -2 = 254
D类,没有子网掩码,用于多播(组播)地址
E类,保留今后使用
CIDR 无类别域
Q:为什么要进行子网划分?
A:如果需要让200台主机在同一个网段内,可以分配到C类网段,比如192.168.1.0/24
子网划分:借用主机位作子网位,划分出多个子网
可分为
-等长子网划分:将一个网段等分成多个子网,每个子网的可用IP地址数量是一样的
-变长子网划分:每个子网的可用IP地址数量可以是不一样的
本来有一个C类网段,192.168.0.0/24
划分为2个子网段
192.168.0.0/25,子网掩码 255.255.255.128
192.168.0.1~192.168.0.126 (126台
192.168.0.128/25
192.168.0.129~192.168.0.254 (126台
规律:如果一个子网是原来网络的1/2,子网掩码往后移一位
规律:如果一个子网是原来的1/2 * 1/2 = 1/4, 子网掩码往后移2位
网关不能是网段
4.超网_静态路由
超网:跟子网反过来,它是将多个连续的网段合并成一个更大的网段
子网掩码向左移动2位,可以合并为四个网段
能被4整除的2进制都是00,
当不知道用什么配置的时候用默认路由0.0.0.0
路由
默认情况下,路由器只知道它直连的网段,非直连的网段需要通过静态路由,、动态路由告诉他
静态路由
-管理员手动给添加路由细腻些
-适用小规模网络
动态路由
-路由器通过路由选择协议(比如RIP、OSPF)自动获取路由信息
-适用于大规模网络
交换机用以太口
Seral串口两个路由器直连,需要是相同的网段。 下一跳只需要填IP,因为在相同网段不需要填子网掩码
静态 设置特定IP路由,子网掩码甜255.255.255.255
默认路由 网络和掩码都填0.0.0.0 ,下一跳要指定
5.局域网_NAT
数据包的传输过程 (在看一次
网络、互联网、英特网
网络(Network)
互联网(internet):利用路由器实现更大的网段
全世界最大的网络:英特网(Internet) 大写,特指因特网
-将全世界所有计算机都连接在一起
-一般使用大写I开头的Internet 特指因特网
-日常生活中说的:你的电脑上不了网。其实就是指:您的电脑没有连接到因特网
ISP(Internet Service Provider),Internet服务提供商,比如移动、电信、网通、铁通等
我们平时拉的宽带都是通过ISP连接到Internet的
双线机房,保持不同的ISP访问速度可以更快
网络分类
局域网:LAN(Local Area Network)
-一般范围在几百米到几十公里的哪的计算机所构成的计算机网络
-常用于公司、家庭、学校、医院、机关、一幢大楼等
-利用以太网技术(Ethernet)
-在电脑、手机上经常见的到一个英文单词WLAN(wireless LAN),无限局域网
城域网(Metropolitan Area Network, MAN)
-一般范围是数十公里到数百公里,可以覆盖一个城市
广域网(Wide Area Network,WAN)
-一般范围是在几百公里到几千公里,可以覆盖一个国家。通常都需要租用ISP的路线
常用的几种接口
FastEthernet
快速以太网口(100M)(局域网)
GigabitEthernet
千兆以太网接口
Serial
串行接口(路由器之间)
上网方式
电话线入户(早期,铜线)
这就是平时说的:ADSL 电话拨号上网(Asymmetric Digital Subscriber Line)Asymmetric非对称
-非对称数字用户线路、提供上、下行不对称的传输宽带(下载快,上传慢)
猫(Modem)调制解调器,进行数字信号和模拟信号的转换
(计算机用的数字信号,电话线传的是模拟信号,调制解调器降它们转换)
光猫(Optical Modem),广调制解调器,进行数字信号和光信号的转换
网线入户
光纤入户(使用更多),需要自备调制解调器
家用无线路由器的逻辑结构
公网IP、私网IP
公网IP(Public)
-Internet上的路由器中只有到达公司的路由器表,没有到达私网的路由表
-公网IP由因特网信息中心(Internet Network Information Center, Inter NIC)统一分配和管理
-ISP需要香Inter NIC申请公网IP
私网IP(Private)
主要用于局域网,下面是保留的私网网段
A类:10.0.0.0/8, 一个A类网络
B类:172.16.0.0/16~172.31.0.0/16,16个B类网络
C类:192.168.0.0/24~192.168.255.0/24,256个C类网络
NAT(Network Address Translation)
-私网IP访问Internet需要进行NAT转换为公网IP
-由路由器来完成
NAT的特点
-可以节约公网IP资源
-会隐藏内部的真实IP
NAT的分类
-静态转换
手动配置NAT映射表、一对一转换
-动态转换
定义外部地址池,一对一转换
-PAT( Port Address Translation) (最常用的NAT技术)
多对一,多个私网IP对应一个公网IP,最大程度
采用端口多路复用的方式,通过端口号标识不同的数据流
目前应用最广泛的NAT实现方式
同一局域网向外发送信息,可能IP会一样,但是路由器会记住客户端端口号(随机)