文章目录
- 0 引言
- 1 基础知识的定义
- 1.1 计算机网络层次
- 1.2 网络供应商 ISP
- 1.3 猫、路由器、交换机
- 1.4 IP协议
- 1.5 TCP、UDP协议
- 1.6 HTTP、HTTPS、FTP协议
- 1.7 Web、Web浏览器、Web服务器
- 1.8 以太网和WLAN
- 1.9 Socket (网络套接字)
- 2 总结
0 引言
- 在学习的过程中总是会对IP、TCP、UDP、HTTP、HTTPS、FTP这些常见的协议不熟悉,以及对猫,交换机、路由器的含义也不太清楚。
- 对于只是想了解一二的人,让他去学一遍计算机网络课程确实有点耗费时间精力
- 所以我就针对平时常见的名词进行解释,然后再用一张层次图来表明他们各自所处的网络层次全面介绍;
1 基础知识的定义
1.1 计算机网络层次
计算机网络通常被分为多个层次,常用的是OSI模型和TCP/IP模型,它们分别有不同的层次配置。但在实际应用中,TCP/IP协议栈更为广泛使用。
注意:网络的底层均是为上一层提供服务,然后上一层再为上上层提供服务。
- OSI模型:
- 物理层:处理物理连接和电信号传输。(猫)
- 数据链路层:负责数据帧的传输和错误检测。(交换机)
- 网络层:进行路由和包转发,实现不同网络之间的通信。(路由器、IP)
- 传输层:提供端到端的可靠数据传输和流控制。(TCP、UDP)
- 会话层:管理通信会话的建立和维护。
- 表示层:进行数据格式转换、加密和压缩等操作。
- 应用层:提供用户与网络应用程序的接口。(HTTP、HTTPS、FTP)
- TCP/IP模型:
- 网络接口层(链路层):负责处理与物理介质的通信,如以太网、Wi-Fi等。它定义了数据在物理媒介中的传输方式和格式,以及物理地址的解析和传输。
- 网络层:负责数据包的路由和转发,将数据从源地址传输到目标地址。它使用IP协议来标识和定位网络上的设备,并通过路由选择算法确定最佳路径。
- 传输层:提供端到端的可靠数据传输。其中最常用的协议是传输控制协议(TCP)和用户数据报协议(UDP)。TCP提供可靠的、面向连接的数据传输,而UDP提供不可靠的、面向无连接的数据传输。
- 应用层:提供用户与网络之间的接口,支持特定应用程序的网络通信。常见的应用层协议包括超文本传输协议(HTTP)、文件传输协议(FTP)、域名系统(DNS)等。
这些层次的划分有助于组织和管理计算机网络的各个功能模块,使得网络的设计、实现和维护更加灵活和可扩展。
1.2 网络供应商 ISP
- 网络供应商(Internet Service Provider,ISP)是指提供互联网接入服务的公司或组织。它们在全球范围内提供互联网连接和相关服务,使用户能够通过电信基础设施与全球互联网进行通信。
- 中国的网络供应商有:中国电信、中国移动、中国联通、中国铁通;
1.3 猫、路由器、交换机
猫(Modem)、交换机(Switch)和路由器(Router)是计算机网络中常见的网络设备,它们在网络通信中扮演着不同的角色。
猫(Modem):
猫是“调制解调器”的简称,它主要负责将数字信号转化为模拟信号用于传输,以及将模拟信号转化为数字信号用于接收。猫一般用于连接本地网络设备(如计算机、路由器)与互联网服务提供商(ISP)的接入点。它可以通过各种物理介质(如电缆、DSL)将数据信号通过传输线路发送和接收。猫通过拨号、以太网等方式将连接从外部提供者传输到内部网络。
交换机(Switch):
交换机是在局域网(LAN)中用于连接多个网络设备的网络设备。交换机具有多个以太网端口,可以通过它们之间的交换转发数据包。交换机在接收到数据包时,会检查数据包的目的地址,并将其只发送到目标设备连接的端口上,从而实现网络设备之间的直接通信。交换机通过提供高速、可靠的数据交换,增强了局域网的性能和安全性。
路由器(Router):
路由器是用于连接多个网络的设备,用于在不同的网络之间传输数据包。路由器根据目标IP地址和转发表,决定将数据包转发到哪个网络。路由器负责在不同网络之间路由数据,并确保数据按照正确的路径到达目标网络。路由器在一个网络到另一个网络之间起到桥梁的作用,可以实现不同网络之间的通信和互联。
他们三者的联系和区别:
- 猫、交换机和路由器都是网络设备,用于实现数据的传输和通信。
- 猫主要负责将数字信号转化为模拟信号用于传输接入互联网服务提供商;交换机用于连接多个内部网络设备以实现设备之间的通信;路由器则用于连接不同的网络,并在网络之间实现数据包的转发和路由。
- 猫和交换机通常用于局域网内部,而路由器用于连接不同的网络。
- 交换机和路由器都具有多个端口,可以连接多个设备,而猫通常只有一个或少数几个端口。
- 综上所述,猫、交换机和路由器在计算机网络中具有各自的功能和作用,它们一起构成了一个完整的网络系统,实现了设备之间的连接和数据的传输。
1.4 IP协议
IP(Internet Protocol,互联网协议)是一种在互联网上进行数据包传输的网络层协议。它为网络设备(如计算机、路由器等)提供了一种 寻址 和 路由 的功能,以确保数据能够准确传递到目标设备。
IP协议的主要特点和功能如下:
- 寻址和唯一标识:IP协议通过IP地址来标识网络设备,每个设备都有一个唯一的IP地址,它由网络号和主机号组成。IP地址用于定位设备的位置,以便网络数据能够正确地路由到目标设备。
- 路由选择:IP协议负责根据目标IP地址选择合适的路由路径,以实现数据包的传输。路由器根据设备的IP地址和路由表信息,决定将数据包发送到哪个网段或下一跳的路由器。
- 分组和重组:IP协议将大块的数据分割成较小的数据包(称为IP数据报),并在网络上传输。接收端的IP协议负责根据数据包的序号和标识信息,将分散的数据包重新组装成完整的数据。
- 不可靠的传输:IP协议本身是一种无连接、不可靠的传输协议。它不提供数据包的确认、重传和序列控制等机制。当数据包在传输过程中发生丢失、错误或延迟,IP协议不会进行处理,而是交给上层的传输协议(如TCP和UDP)来处理。
总体来说,IP协议提供了一种灵活、可扩展的机制,使得数据能够在不同的网络之间进行传输。它是互联网通信的基础,为其他上层协议(如TCP、UDP、HTTP等)提供了可靠的传输基础。同时,IP协议也面临着很多挑战,如IPv4地址枯竭和网络安全等问题,因此,IPv6协议作为新一代IP协议正在逐渐推广和应用。
1.5 TCP、UDP协议
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的传输层协议。它们在互联网通信中起着不同的作用和提供不同的特点。
TCP协议:
- 面向连接:在数据传输之前,TCP会先建立一个连接,确保通信双方建立可靠的传输通道。
- 可靠性:TCP提供可靠的数据传输机制。它采用序列号、确认机制和重传机制来保证数据的可靠性,确保数据包按序到达目的地,并处理丢失、重复、错误等问题。
- 流量控制:TCP通过滑动窗口机制控制数据发送的速率,避免发送过多数据导致接收方无法及时处理。
- 拥塞控制:TCP能够感知网络拥塞,并根据网络状况调整数据的发送速率,以避免拥塞情况的进一步恶化。
- 适用场景:TCP适用于对数据传输可靠性要求较高的应用,如文件传输、电子邮件、Web浏览器等应用。
UDP协议:
- 无连接:UDP是一种无连接的协议,数据包的传输没有建立连接的过程。数据包独立发送,不保证顺序和可靠性。
- 无确认和序列号:UDP不提供数据包的确认和重传机制,也不处理丢失、重复、错误等问题。
- 简单性和低延迟:由于不需要建立连接和进行可靠性保证,UDP的开销较小,传输速度相对较快,适用于实时性要求高的应用。
- 广播和多播:UDP支持广播和多播功能,可以实现将数据包发送给多个目标设备。
- 适用场景:UDP适用于对传输延迟要求较高、对传输可靠性要求相对较低的应用,如实时音视频传输、在线游戏等。
两者使用场景区别:选择使用TCP还是UDP取决于应用要求和场景需求。对于需要可靠传输、顺序性和拥塞控制的应用,TCP是更好的选择。而对于实时性要求较高、数据量较小、丢失几个数据包不会造成严重影响的应用,UDP更合适。
1.6 HTTP、HTTPS、FTP协议
HTTP(Hypertext Transfer Protocol),HTTPS(Hypertext Transfer Protocol Secure)和FTP(File Transfer Protocol)都是常用的应用层协议,用于不同的数据传输和通信场景。
HTTP:
HTTP是一种用于在客户端和服务器之间传输超文本的协议。它是Web浏览器和Web服务器之间的通信协议,用于请求和传输HTML页面、图像、音频、视频等资源。HTTP是基于TCP协议的(上层协议都是根据下层协议提供的服务实现的),采用了请求-响应模型,客户端向服务器发送请求,服务器返回相应的内容。
HTTPS:
HTTPS是基于HTTP协议的安全版本。它通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议来对通信进行加密和验证,以确保数据传输的安全性。HTTPS协议在HTTP的基础上加入了加密和身份认证,常用于涉及敏感信息传输的网站,如电子商务网站、在线银行等。
FTP:
FTP是一种用于文件传输的协议。它允许将文件从一个计算机传输到另一个计算机,可以上传、下载和管理文件。FTP协议可以在一个客户端和一个服务器之间建立一个连接,使用用户名和密码进行身份验证,并在服务器和客户端之间进行文件传输。FTP通常使用TCP作为传输协议。
需要注意的是,HTTP和HTTPS主要用于Web访问和资源传输,而FTP协议则专注于文件传输。每种协议都有自己的特点和用途,在不同的场景中选择适合的协议来满足需求。
1.7 Web、Web浏览器、Web服务器
在HTTP协议中介绍了Web相关的知识点,下面再将Web相关定义回顾一遍
Web(World Wide Web)
是一种基于互联网的信息系统,由许多互相连接的网页组成。它通过使用标准的HTTP协议进行通信,使得用户能够通过Web浏览器访问和浏览网页上的内容。
Web浏览器
是一种用于查看和访问Web页面的软件应用程序。它提供了用户界面,允许用户输入URL(统一资源定位符)或点击链接来请求特定的Web页面。一旦接收到页面数据,Web浏览器会解析并显示页面上的文本、图像、视频和其他多媒体内容。常见的Web浏览器包括谷歌浏览器、Mozilla Firefox、微软Edge等。
Web服务器
是一种网络服务器软件,主要负责接收并响应Web浏览器发出的HTTP请求。它存储和提供Web页面和其他相关资源,将这些资源发送给请求的浏览器。Web服务器可以根据请求的URL和其他参数,动态生成页面内容,还可以处理表单提交、会话管理等功能。常见的Web服务器软件有Apache HTTP Server、Nginx、Microsoft IIS等。
Web浏览器和Web服务器是Web使用过程中的两个重要角色。浏览器作为客户端发送HTTP请求,服务器作为服务端接收并响应请求,两者之间通过互联网进行通信,以实现用户在Web上浏览和交互的功能。
拓展:Web浏览器和Web服务器之间基本的请求-响应模型
当用户在Web浏览器中输入URL或点击链接时,以下是Web浏览器和Web服务器之间的基本流程:
- 解析URL:浏览器解析用户输入的URL,提取出协议(如HTTP、HTTPS)、域名(如www.example.com)和路径(如/page)等信息。
- 建立连接:浏览器通过网络建立与Web服务器的TCP连接。使用域名解析将域名转换为服务器的IP地址,并通过端口号确定Web服务器的监听端口(默认为80)。
- 发送HTTP请求:浏览器构建HTTP请求报文,包括请求方法(如GET、POST)、请求头(如User-Agent、Cookie)和请求体(如果有的话),然后将请求报文发送给Web服务器。
- 处理请求:Web服务器接收到请求后,根据请求的URL和其他信息,找到对应的资源或处理程序。如果请求的是静态文件(如HTML、图片、CSS文件等),服务器会从磁盘中读取文件,并将文件作为响应内容发送给浏览器。如果请求的是动态资源(如PHP、Python脚本等),服务器会调用相应的处理程序进行处理,并生成动态的响应内容。
- 发送HTTP响应:Web服务器将生成的响应内容构建成HTTP响应报文,包括响应状态码(如200表示成功,404表示未找到资源)和响应头(如Content-Type、Content-Length),然后将响应报文发送给浏览器。
- 接收和解析响应:浏览器接收到响应报文后,根据响应头中的信息解析响应内容。浏览器会根据响应的数据类型进行相应的处理,如渲染HTML内容、加载CSS样式表、执行JavaScript脚本等。
- 渲染页面:浏览器会将接收到的HTML文档解析为DOM树,并根据CSS样式对DOM元素进行渲染。然后,浏览器将渲染好的页面显示给用户。
- 关闭连接:当浏览器完成页面的渲染并断开与服务器的连接时,连接会被关闭,释放相关的资源。
1.8 以太网和WLAN
以太网(Ethernet)
是一种局域网(LAN)技术,用于在计算机和其他网络设备之间进行数据通信。以太网是一种基于有线传输介质的网络技术,最常见的传输介质是双绞线。它基于CSMA/CD(载波侦听多路访问/冲突检测)协议,允许多个设备共享同一个局域网,并通过解决冲突来提供高效的数据传输。
WLAN(无线局域网)
是一种无线网络技术,通过无线信号传输数据,实现计算机和其他无线设备之间的数据通信。WLAN使用无线接入点(Access Point)作为中心设备,通过无线信号覆盖一定范围内的区域,使设备可以连接到网络并进行数据交换。常见的无线网络技术包括Wi-Fi(无线保真)。
区别和联系:
- 传输介质:以太网使用有线传输介质(如双绞线),而WLAN使用无线信号进行数据传输。
- 连接方式:以太网通常通过物理连接(如网线)将设备连接到网络,而WLAN则通过无线信号连接设备。
- 覆盖范围:以太网的传输范围受限于有线传输介质的长度,而WLAN通过无线信号可以在一定范围内提供网络覆盖。
- 移动性:以太网连接通常是固定的,设备需要通过有线连接到网络,而WLAN提供了移动性,允许设备在无线网络覆盖范围内自由移动。
- 速度和带宽:以太网通常提供更高的传输速度和带宽,适合在局域网中传输大量数据。WLAN的速度和带宽通常受到无线信号质量和干扰的影响,可能不如有线网络稳定和高速。
- 尽管以太网和WLAN使用不同的传输技术和连接方式,它们通常被用于不同的场景和需求。以太网适用于需要高速、高带宽和可靠连接的场景,如办公室、数据中心等;而WLAN适用于需要灵活移动、无线连接和覆盖范围更广的场景,如家庭、咖啡馆、机场等。
1.9 Socket (网络套接字)
思考:在设计到网络编程时,总会听到Socket词汇,那么Socket到底是什么呢?
答案:Socket 是传输层给应用层提供的服务接口。
- 在网络通信中,不同层次的协议有着不同的责任和功能,传输层负责将数据从一个节点传输到另一个节点,而应用层则负责应用程序之间的通信。
- Socket 是传输层和应用层之间的接口,通过它应用程序可以向传输层发送数据和接收数据。应用程序可以利用 Socket API 来创建和管理套接字(Socket),通过套接字进行数据的发送和接收。
- 传输层提供了两种常用的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP 提供可靠的、面向连接的数据传输,而 UDP 则是一种无连接的协议,适用于需要快速传输而对可靠性要求较低的应用。
- 通过 Socket,应用程序可以选择适合自身需求的传输层协议。例如,对于需要保证数据的可靠性和顺序的应用,可以选择使用 TCP 协议;而对于实时性要求较高、可靠性要求较低的应用,可以选择使用 UDP 协议。
总结来说,Socket 是传输层提供给应用层的接口,它使应用程序能够通过传输层协议进行数据的发送和接收。开发人员可以利用 Socket 来实现各种网络应用和通信功能。