IT基础-计算机网络
计算机网络的模型
OSI(开放式系统互联通信参考模型)模型
OSI(Open System Interconnection Reference Model)是一个概念模型
如图所示一共有七层,分别为应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
分层 | 功能 | 协议 | 各层设备 |
---|---|---|---|
应用层 | 允许访问OSI环境的手段(应用协议数据单元APDU) | HTTP、FTP、TFTP、SMTP、SNMP、DNS、TELNET、HTTPS、POP3、DHCP等; | 计算机、负载均衡和七层交换机 |
表示层 | 对数据进行翻译、加密和压缩(表示协议数据单元PPDU) | JPEG、MPEG、ASII | 六层交换机 |
会话层 | 建立、管理和终止会话(会话协议数据单元SPDU | NFS、SQL、NETBIOS、RPC | 五层交换机 |
传输控制层 | 提供端到端的可靠报文传递和错误恢复(段Segment) | TCP、UDP、SPX | 四层交换机 |
网络层 | 负责数据包从源到宿的传递和网际互连(包PackeT) | P、IPX、OSPF、RIP、IGRP、ICMP、ARP、RARP | 路由器、网关和三层交换机 |
数据链路层 | 将比特组装成帧和点到点的传递(帧Frame) | PPP、FR、HDLC、VLAN、MAC | 分为两个子层:逻辑链路控制层(LLC)和媒体访问控制层(MAC)。网卡(有争议)、网桥和二层交换机 |
物理层 | 各种传输媒体(光线、网线),各类DTE和DCE之间通讯的物理设备(如:计算机、HUB),各类插槽、插座。 | RJ45、CLOCK、IEEE802.3 | 各种传输媒体(光线、网线),各类DTE和DCE之间通讯的物理设备(如:计算机、HUB),各类插槽、插座。 |
TCP/IP协议
TCP/IP协议在一定程度上参考了OSI的体系结构,其将表示层和会话层和应用层视为一层应用层
TCP协议
TCP是传输层协议,TCP是面向连接的,可靠的;那么什么是连接呢?连接是套接字,套接字又是啥?套接字就是【IP :Host 】【IP :Host 】
IP协议
网络层协议
我们访问一个网站都干了些什么?
简单来说:建立连接-发送请求-得到数据-断开连接
此处我使用Xshell连接到我虚拟机中的linux操作系统(使用的是ubantu)其实我直接在ubantu进行耍就行了,这里有点饶远路,为了顺便模拟下Xshell连接另一台电脑的场景(比如哪天我们买云服务器玩而这个虚拟机上的ubantu就相当于是我的云服务器上的主机我需要通过Xshell或者其他工具与他进行远程连接来操控它)
建立连接
nc www.baidu.com 80
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210520194222475.png?x-oss-process=image/wat
查看网络状态
netstat -natp
找到PID/Program进程名称是nc的就是刚才我们创建的连接。
Local对应的就是本地地址,Foreign对应的就是百度的服务器地址,State 对应的是established(已建立连接状态)。
www.baidu.com通过DNS域名解析得到了真实的IP地址14.215.177.38:80
发送请求
继续在第一个终端窗口,输入GET / HTTP/1.0
回车发起GET请求 使用的协议是HTTP/1.0
得到的内容包括了响应头,响应体
TCP/IP协议 三次握手
为什么要又三次握手?打个比喻:
第一次握手:张三喊李四:喂!李四。
第二次握手:李四听到了回复张三:嗯哼?
第三次握手:张三听到了李四的回应:三点几啦,饮茶先啦!
假如到了第二次握手就没下文了,此时李四知道张三在喊自己,张三知道了李四听到了。那么问题来了,李四知不知道张三收到李四的回复?所以需要三次握手,**互相都能够确认自己的IO(输入输出)是正常的。**因此通过这样的确认方式,连接是可靠的。
三次握手建立连接,这个连接并非物理意义上的连接,而是各自在自己的内存空间开辟了资源。也就是上面所讲的这个条目
你看Recv-Q(发送队列) Send-Q(接收队列)就有了。
扩展: 三次握手对于传输控制层来说,是开辟了空间资源,建立链接。而对于程序来说(程序员关心)这些条目,其实就是 Socket。socket说白了就是对资源的包装。程序只是单机的在跟自己内核的发送和接收队列去进行调度,至于内核是怎么发送给对方的程序员不需要管,那些交给内核进行处理。
socket是什么?
官方对其解释为套接字,Socket(套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。
公式表达: 套接字Socket=(IP地址:端口号)
一个连接对应两个socket,两个之间的组合是唯一的:【源IP地址:端口号】-【目标IP地址:端口号】
TCP/IP协议 四次分手
分手是断开连接,资源释放。分手就分手,为什么要四次?
如果一方断开连接,释放资源了,另一方还有数据要读取,是不是就会有问题。
大白话理解:正常来说发起断开连接那方已经是确定了要释放资源了,被通知断开的一方临时收到消息至少也要确认一下是不是可以断开吧?这样才能保证的了可靠性
第一次:张三跟李四通话过程中,然后说:你没什么事的话我挂了,我没什么事了。
第二次:李四告诉张三:好的我知道你没事了,但是你等下我再看看我还有没有其他事。
第三次:李四确认完后回复张三:三点几了,你饮茶先啦。可以挂了。
第四次:张三回复李四:收到,over。
这样一来任何一方都是可靠的释放资源,断开连接。
TCP/IP完整过程验证
1,先找到我们需要监听的网卡先
终端命令:
ifconfig
ens33就是我们待会需要监听的网卡
2,开启监听
终端命令:
sudo tcpdump -n -i ens33 port 80
解释:
-n 不把网络地址转换成名字;
-i 接口
port 端口号
完整的意思是我们通过tcpdump 对 网卡接口为ens33 端口号为80进行监听
3,发送请求
终端命令:
curl www.baidu.com 80
键盘按“Ctrl+C”断开连接
监听结果
IP(Internet Protocol)
什么是IP?
IP是 Internet Protocol (网际互连协议)的缩写。
什么是IP地址?
给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。简单来说有了IP地址,能确保数据在计算机网络数据传输过程中精准传输到每台主机。
IP地址分类
有类地址
- A类地址
第一段号码为网络号码,剩下的三段号码为本地计算机的号码,且第一号段高位固定为0;
这类地址主机位比较多,适合大型公司的大型网络进行使用。 - B类地址
第一、,二段号码为网络号码,剩下的两段号码为本地计算机的号码,且第一号段高位固定为10。 - C类地址
第一、,二,三段号码为网络号码,剩下的两段号码为本地计算机的号码,且第一号段高位固定为110。 - D类地址
最高位固定为1110 - E类地址
最高位固定为1111
私有地址(Private address)
属于非注册地址,专门为组织机构内部使用。
以下列出留用的内部私有地址
A类 10.0.0.0–10.255.255.255
B类 172.16.0.0–172.31.255.255
C类 192.168.0.0–192.168.255.255
一般来说我们正常使用的都是私有地址。
公网IP
公网IP是指以公网,连接Internet上的非保留地址,公网,内网是两种Internet的接入方式,公网的计算机和Internet的计算机可以随意互相访问,NAT(Network Address Translation)是网络地址转换,它实现内网的IP地址与公网的地址之间相互转换,将大量的内网IP地址转换为一个或少量的公网IP地址,减少对公网IP地址的占用。使用**NAT(Network Address Translation)**协议,使得局域网内的计算机可以访问Internet上的计算机,但是Internet的计算机无法访问局域网中的计算机。
特殊地址
-
环回地址:127.0.0.0~127.255.255.255:用于本地的环回测试,检查本地网卡是否正常。
-
本地地址:0.0.0.0 未知地址
-
广播地址:255.255.255.255
网络分类
从不同的角度对网络有不同的分类方法。
- 按网络地理位置分类:局域网,城域网,广域网
- 按传输介质分类:有线网,光纤网,无线网
- 按网络拓扑结构分类:星型结构,环型结构,总线结构,分布式结构、树型结构、网状结构、蜂窝状结构 等
- 按使用者进行分类:公网,专用网
- 按通讯方式:点对点传输网络,广播式网络
等等
子网划分
子网划分是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的
举例:C类地址划分成两个子网,C类地址默认子网掩码是:255.255.255.0,根据子网划分的思想,要划分成两个子网,则需要借一个 主机位,所以子网掩码为:255.255.255.128/25(11111111.11111111.11111111.1000000);此处借用的主机位我用斜体进行标注。那么剩余的主机位为7位,减去广播地址和本地地址,则每个子网的主机可用地址数目为:2^7-2
演练命令行发送请求
跟使用抓包工具一个道理
1,访问页面
得到了表单提交地址:“http://obs.exam.blog8090.com/casual/login”
2,发送post请求提交表单
curl -d "phone=15815364227&username" "http://obs.exam.blog8090.com/casual/login"
找一个Unicode在线转换工具转换一下得到口令
3,再次发送POST请求
curl -d "phone=15815364727&username=zhangsan&kouling=今晚打老虎" "http://obs.exam.blog8090.com/casual/login"
得到"Wow,nice"
题目
1,星型拓扑结构,环形拓扑结构,总线拓扑结构,树形拓扑结构
2,OIS应用层支持:FTP(文件传输协议),SMTP(简单邮件传输协议),HTTP(超文本传输协议),DNS(域名系统)等。
3,DNS的作用是:通过域名解析找到IP地址
4,ARP,地址解析协议,已知IP地址找出其相应的硬件地址,RARP是逆地址解析协议,已知硬件地址找到其IP地址。
5,C类地址前三段号码段为网络段,最后一段剩余位主机号,预留了24位网络号,8位主机号。
6,B类IP地址划分位8个子网,子网掩码为255.255.224.0
7。127.0.0.1,不会