5.简单的网络协议(上)

た 入场券 2022-10-16 09:40 328阅读 0赞

一、互联网

在这里插入图片描述
思考:数据是如何从一个设备传递到另一个设备的?–都是由网络协议来规定的

1、为什么要学习网络协议?

 互联网、移动互联网、物联网,都离不开网络协议

最熟悉的网络协议:HTTP

 为了满足各种需求,有各式各样的网络协议(HTTPS、SMTP、MQTT、RTMP等)

面试题

 TCP和UDP的区别?说一下他们的报文格式

 TCP的流量控制和拥塞控制?TCP如何实现可靠性传输?

 为什么连接是3次握手,关闭是4次挥手?

 7层模型与4层模型的区别?每一层的作用是什么?

 交换机与路由器的区别?

2、学习中需要搭建的环境

客户端-服务器开发环境:

 客户端:浏览器(HTML+CSS+JS)
 服务器:Java
在这里插入图片描述
在这里插入图片描述
网络抓包

 浏览器(Chrome、Firefox)、Fiddler、Wireshark

模拟工具:

 Xshell、Packet Tracer、GNS3

3、网络互连模型

OSI(Open System Interconnect)参考模型,具有7层模型
在这里插入图片描述
OSI模型是一种国际标准
在这里插入图片描述
TCP/IP协议模型是一种实战模型
在这里插入图片描述

二、Java服务器与客户端简单连接

http://IP地址:端口号/资源路径
http://127.0.0.1:8080/hello

默认访问的是web中的index.jsp文件

登录页面:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>登录</title>
  6. </head>
  7. <body>
  8. <form action="http://www.baidu.com">
  9. <div>用户名<input name="username"></div>
  10. <div>密码<input name="password"></div>
  11. <button type="submit">登录</button>
  12. </form>
  13. </body>
  14. </html>

注:type = “submit”—>将用户名和密码传给服务器
action=“http://www.baidu.com”—>代表想发给谁

  1. package com.wj.servlet;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.annotation.WebServlet;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import java.io.IOException;
  8. /**
  9. * @ClassName LoginServlet
  10. * @Description 处理登陆请求
  11. * 1.继承HttpServlet,才能处理HTTP请求
  12. * 2.使用@WebServlet,说明它要处理的请求路径
  13. **/
  14. @WebServlet("/login")
  15. public class LoginServlet extends HttpServlet {
  16. @Override
  17. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  18. doPost(req, resp);
  19. }
  20. /**
  21. *
  22. * @param req:request 请求:用来获取客户端发送的额数据
  23. * @param resp:response 响应:用来给客户端返回数据
  24. * @throws ServletException
  25. * @throws IOException
  26. */
  27. @Override
  28. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  29. //1.获取客户端发送的数据(请求参数)
  30. String username = req.getParameter("username");
  31. String password = req.getParameter("password");
  32. System.out.println(username + "_" + password);
  33. //2.判断
  34. if ("123".equals(username) && "456".equals(password)){
  35. //登录成功
  36. resp.getWriter().write("Login Success!");
  37. }else {
  38. //登录失败
  39. resp.getWriter().write("Login Failure!");
  40. }
  41. }
  42. }

客户端:
在这里插入图片描述
服务器:
在这里插入图片描述

三、计算机之间的通信基础

需要得知对方的IP地址

最终根据MAC地址(网卡地址),输送数据到网卡,被网卡接收

 ①如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理

 ②如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层进行处理

3.1 计算机之间的连接方式–网线直连

在这里插入图片描述
测试两台电脑之间是否能直接连接
在这里插入图片描述
结果:
在这里插入图片描述
 ARP协议(广播):广播是在同一网段中传播

特点:

需要用交叉线(不是直通线)

3.2 计算机之间的连接方式–同轴电缆(Coaxial)

在这里插入图片描述
特点:

半双工通信:通道在同一时间内只允许同一方向进行通信
容易冲突
不安全
没有智商

3.3 计算机之间的连接方式–集线器(Hub)

在这里插入图片描述
在这里插入图片描述
模拟:
在这里插入图片描述

特点:

半双工通信
容易冲突
不安全
“没有智商”

两台计算机之间通信不会受其他计算机影响

3.4 计算机之间的连接方式–网桥(Birdge)

在这里插入图片描述
网桥内部有MAC地址表(分左右):

特点:

能够通过自学习得知每个接口那侧的MAC地址
 从而起到隔绝冲突域的作用

3.5计算机之间的连接方式–交换机(Switch)

在这里插入图片描述
特点:

相当于接口更多的网桥

全双工通信

比集线器安全

交换机是局域网的最终方案

思考:

如果全球所有的设备都用交换机连接会是什么情况?

3.6 计算机之间的连接方式–路由器(Router)

网线直连、同轴电缆、网桥、交换机的共同点:

 连接的设备必须在同一网段
 连接的设备处在同一广播域

路由器:

可以在不同网段之间转发数据

隔绝广播域

在这里插入图片描述
在这里插入图片描述
主机发数据之前,首先会判断目标主机的IP地址跟它是否在同一个网段

1)在同一个网段:发送一个ARP广播,然后通过交换机或集线器传递数据

2)不在同一个网段:通过路由器转发数据

网关(Gateway):路由器两端各有一个网关,用来连接不同网段的计算机

有网关后,发送ARP的意义是:获取网关的MAC地址

在这里插入图片描述

四、MAC地址

每一个网卡都有一个6字节(48bit)的MAC地址(Media Access Control Address)

全球唯一,固化在了网卡的ROM(存储空间)中,由IEEE802标准规定

前3个字节:OUI,组织唯一标识符,由IEEE的注册管理机构分配给厂商

后三个字节网络接口标识符,由厂商自行分配

如:
在这里插入图片描述

4.1 MAC地址的表示格式

在这里插入图片描述

4.2 MAC地址操作

查看MAC地址:ipconfig/all

 修改MAC地址:

  更改适配器选项 - 属性 - 配置 - 高级 - 网络地址
  填写时需要把减号(-)去掉
  有时可以通过MAC地址蹭网
在这里插入图片描述

4.3 MAC地址的获取

当不知道对方主机的MAC地址时,可以通过发送ARP广播获取对方的MAC地址

 获取成功后,会缓存IP地址、MAC地址的映射信息,俗称:ARP缓存

 通过ARP广播获取的是MAC地址,属于动态(dynamic)缓存
  存储时间比较短(默认是2分钟),过期了就会自动删除

相关命令:

arp -a [主机地址]:查询ARP缓存
arp -d [主机地址]:删除ARP缓存
arp -s 主机地址 MAC地址:增加一条缓存信息(这是静态缓存,存储时间较久,不同系统的存储时间不同)

五、IP地址

详见博客:https://blog.csdn.net/weixin\_44116098/article/details/117675992

六、路由

6.1 概念+练习

在不同网段之间转发数据,需要有路由器支持

默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态路由、动态路由告诉它

6.1.1 练习1–让4台主机之间可以互相通信

在这里插入图片描述
路由器0的路由表
在这里插入图片描述

6.1.2 让4台主机之间可以互相通信

在这里插入图片描述

6.2 数据包的传输过程

在这里插入图片描述

6.3 网络、互联网、因特网

在这里插入图片描述

6.4 ISP

ISP,Internet Service Provider,Internet服务提供商,如移动、电信、网通、铁通等

 平时拉的宽带都是通过ISP连接到Internet的
在这里插入图片描述

6.5 服务器机房

在这里插入图片描述

6.6 网络分类

按照网络的范围分:局域网、城域网、广域网

6.6.1 局域网(Local Area Network,LAN)

 一般是范围在几几百米到十几公里内的计算机所构成的计算机网络

 常用于公司、家庭、学校、医院、机关、一栋大楼等

 局域网中使用最广泛的网络技术叫:以太网(Ethernet)

 在电脑、手机上常见的WLAN(Wireless LAN),叫:无线局域网

6.6.2 城域网(Metropolitan Area Network,MAN)

 一般范围是数十公里到数百公里,可以覆盖一个城市

6.6.3 广域网(Wide Area Network,WAN)

 一般范围是几百公里到几千公里,可以覆盖一个国家,通常都需要租用ISP的线路

6.7 常见的几种接口

FastEthernet

 快速以太网接口(带宽可达100M)

GigabitEthernet

 千兆以太网接口

Serial

 串行接口
在这里插入图片描述

6.8 上网方式

6.8.1 电话线入户

在这里插入图片描述
这就是平时说的:ADSL电话拨号上网

 非对称数字用户线路,提供上、下行不对称的传输带宽

 猫(Modem),调制解调器,进行数字信号和模拟信号的转换

6.8.2 光纤入户

在这里插入图片描述
 光猫(Optical Modem),光调制解调器,进行数字信号和光信号的转换

6.8.3 网线入户

在这里插入图片描述

6.9 家庭无线路由器的逻辑结构

在这里插入图片描述

6.10 公网IP、私网IP

IP地址分为:公网IP、私网IP

公网IP(Poblic)

 Internet上的路由器中只有到达公网的路由表,没有到达私网的路由表

 公网IP由因特网信息中心(Inter NIC)统一分配和管理

 ISP需要向Inter NIC申请公网IP

私网IP(Private)

 主要用于局域网,下面是保留的私网网段
在这里插入图片描述

6.11 NAT

私网IP访问Internet需要进行NAT转换为公网IP

NAT(Network Address Translation)

 这一步可以由路由器来完成

特点:

 可以节约公网IP资源

 会隐藏内部真是IP

分类:

静态转换

  手动配置NAT映射表

  一对一转换

动态转换

  定义外部地址池,动态随机转换

  一对一转换

PAT(Port Address Translation)

  多对一转换,最大程度节约公网IP资源

  采用端口多路复用方式,通过端口号表示不同的数据流

  是目前应用最广泛的NAT实现方式

发表评论

表情:
评论列表 (有 0 条评论,328人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SNMP:简单网络管理协议

     基于 TCP/IP 的网络管理包括两部分:网络管理站 (manager) 和被管理的网络单元(被管设备)。这些被管设备的共同点就是都运行 TCP/IP 协议。管理进程和