以下内容来自于小码哥"网络协议从入门到底层原理"
<一> 一个简单的案例
Tomcat Server
-> Local
- http://ip地址:端口号/资源路径
- 回环地址+端口+项目: http://127.0.0.1:8080/hello
Application context: 配置路径-> /hello
-> 访问到了web文件夹
比如我要访问web文件夹的具体文件, 就要拿到路径下的文件名->/hello/dragonBall.jpg
如果没有指定文件名, 会默认访问index.htm
, index.html
, index.jsp
.
假设有一个登录页面
处理登录请求
- 继承
httpServlet
, 才能处理http
请求
- 继承
- 使用
@webservlet
, 说明它要处理的请求的路径
- 使用
这个时候, 比如一个loginHtml
的用户名和密码就会发给服务器的特定代码去执行.
doGet
方法, doPost
方法
- 获取客户端发送的数据(请求路径)
- 判断, 给客户端返回数据
<二> 计算机之间的通信基础
- 需要得知对方的
IP
地址 - 最终是根据
MAC
地址(网卡地址), 输送数据到网卡, 被网卡接收
-- 如果网卡发现数据的目标MAC
地址是自己, 就会将数据传递给上一层处理
-- 如果网卡发现数据的目标MAC
地址不是自己, 就会将数据丢弃, 不会传递给上一层进行处理
计算机之间的连接方式- 网线(交叉线, 不是直通线)直连
不在同一个网段ping
不通
ping
-> 使用的是ICMP
协议
当不知道对方MAC
地址时, 使用ARP
协议, 广播(是在同一个网段中传播): 目的是获取MAC
地址, 给所有连接设备发广播, 询问ip地址下的MAC
地址. 全是1
的MAC
地址, 代表广播, 表示在同一个网段的所有连接设备都能接收.
当通过ARP
协议拿到MAC
地址后, ICMP
协议才能正常地进行.
ARP
是有缓存的, 当下次在ping
的时候, 就不需要再去获取ip
地址了, 而是直接执行ICMP
协议.
计算机之间的连接方式- 同轴电缆
- 半双工通信(同一时间单向)
- 容易冲突
- 不安全
- 中间断了, 整个就瘫了(失去了终止电阻)
计算机之间的连接方式- 集线器(Hub)
- 半双工通信
- 容易冲突
- 不安全
- 跟同轴电缆一样: 没有智商
计算机之间的连接方式- 网桥(Bridge)
- 能够通过自学习得知每个接口那侧的
MAC
地址
(MAC
地址表) - 从而起到隔绝冲突域的作用
计算机之间的连接方式- 交换机(Switch)
- 相当于接口更多的网桥
- 全双工通信(同一时间双向)
- 比集线器安全
如果全球的设备都用交换机连接会是什么情况?