文章目录
OSI参考模型和TCP/IP参考模型
- 左为OSI参考模型,它是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
- TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,如图右。
OSI参考模型各个层次及其功能
层次 | 功能 |
---|---|
物理层(最底层) | 建立、维护、断开物理连接 |
数据链路层 | 提供介质访问和链路管理,将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正 |
网络层 | IP地址及路由选择 |
传输层 | 建立、整理、和维护端到端的连接、进行数据的传输 |
会话层 | 建立、管理和维护会话 |
表示层 | 数据格式转化、数据加密。格式有,JPEG、ASCll、DECOIC、加密格式等 |
应用层 | 为应用程序提供服务 |
TCP/IP模型各个层次及其内容
层次 | 功能 | 主要协议 |
---|---|---|
网络接入层 | 与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。 | |
网络层 | 主要解决主机到主机的通信问题,它还负责数据包在多种网络中的路由。 | ARP地址解析协议 / IP网际协议/ ICMP 差错报文协议 / IGMP互联网组管理协议 |
传输层 | 为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性 | TCP 传输控制协议 /UDP用户数据报协议 / |
应用层 | 为用户提供所需要的各种服务 | FTP 文件传输协议/SMTP发送邮件协议 /POP接收邮件协议 |
TCP就相当于中国邮政快递,用来做运输服务
IP就相当于邮政编码,用来唯一标记目的地
为什么我们现在使用TCP/IP模型,而不是OSI模型呢?
首先,纠正一个自己一直以来的误区,TCP/IP模型的出现要早于OSI模型。
在通信过程中,之所以使用TCP/IP模型,是因为OSI模型是根据理论设计的,从完整性上讲,OSI更加完备,但是TCP/IP是边设计边实现的,最开始的协议栈的实现就是根据四层模型做的,已经有很多商家支持四层模型了,很多现有系统不可能再去返工。
而且,OSI模型自身也有缺陷,层次划分的过于细,会话层和表示层几乎是空的,而数据链路层和网络层包含内容又太多,协议极其复杂,导致系统效率降低。
两种Internet的接入方式(内网和外网)
IP的定义
IP是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。常见的IP地址,分为IPv4与IPv6两大类。目前还有些ip代理软件,但大部分都收费。
IP地址在用户上网时才有,它不是固定的,连接的网络不同,显示的IP地址也不同。
内外网的定义
定义:
内网通俗的说就是局域网LAN网,外网通俗的说就是与因特网相通的WAN广域网或 MAN 城域网路。内网和外网是相对而言的。
外网通过任意内网都可以访问,如百度,腾讯的IP都是外网IP,当开放了相应端口之后,我们网络上的任意主机都可以访问。
内网只能在内部主机之间访问。
目的:
外网IP是比较紧张的,因此,为了解决外网不足的问题,一般用户都采用内网来接入互联网
内网地址:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.55
内网地址是局域网内给主机分配的IP地址,该地址外网无法直接访问,只能内网主机之间进行访问。
图解接入方式
如图,可以通过公网和内网两种方式接入互联网。
对于内网来说,通过路由器上的LAN插口(一般为4个)可以连接不同的主机,(路由的WAN接口可以连接外网IP),这些主机,在内部各自有各自的IP地址,但是对于外网来说,它显示的只有一个IP地址,这样在极大程度上缓解了IP地址不足的问题。
对于内网来说,不同内网之间主机的IP地址可以重复,
同一内网之间的IP地址不可以重复。
因此,一般来说,外网(公网)IP的主机做服务器。
内网IP的主机做客户端。
端口号
有了TCP和IP之后,就可以实现主机之间的通信,但是我们还需要端口号来区分数据是属于哪一个应用程序的,因为一台主机可以同时运行多个应用程序。
所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。 为了对端口进行区分,将每个端口进行了编号,这就是端口号。
常见端口号:
端口号 | 服务 |
---|---|
21 | FTP #文件传输 |
23 | Telnet #远程登录 |
25 | SMTP #邮件发送 |
80 | HTTP #访问网页 |
8080 | #代理访问网页端口,一般在开发过程中使用 |
443 | HTTP #加密的访问网页 |
53 | DNS #域名系统 |
HTTP协议
HTTP协议的定义
HTTP(HyperText Transfer Protocol,超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。它是指WWW服务器传输超文本到本地浏览器的传输协议。它请求和响应消息的头以ASCII码形式给出。
HTTP是一个无状态协议。
扩展:
无状态协议是指比如客户获得一张网页之后关闭浏览器,然后再一次启动浏览器,再登录该网站,但是服务器并不知道客户关闭了一次浏览器。
HTTP协议的工作过程
一个HTTP操作称为一个事务,分为以下四步:
- 客户机与服务器建立连接。(只要单击某个超链接,HTTP工作就开始)
- 建立连接后,客户机发送请求给服务器。(请求格式为:统一资源定位符 URL 协议版本号 MIME信息包括请求修饰符、客户机信息和可能的内容)
- 服务器收到请求后,发送回应信息。(回应格式为一个状态行,包括协议的版本号、一个成功或者错误的代码、MIME信息包括服务器信息、实体信息和可能的内容)
- 客户机接收服务器所返回的信息通过浏览器显示在用户的显示屏上,客户机与服务器断开连接。
用SocketTool工具模拟服务器和客户机通信过程
1.创建tcpClient,向百度服务器发送数据,请求百度主页。
输入命令,点击连接, 发送数据
百度服务器返回主页的HTML代码
2.使用本地主机,打开两个进程,一个做客户机,一个做服务器,测试数据传输。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019