一、基本概念
1.节点
计算机网络中,每台设备都被称为节点(node)。电脑、手机等都是节点,实际上节点还可以包括:打印机、路由器、网关等。为了加以区分,我们用“节点”一词指代任意的设备,而用”主机”一词指代网络中的电脑节点。由于智能手机也是一个微型电脑, 所以没有特殊情况时,“主机”一 词不刻意区分PC电脑、笔记本、手机等具体设备。
2.局域网(LAN,Local Area Network)和广域网(WAN, Wide Area Network )
按照计算机联网的区域范围的大小,可以把网络分为局域网(LAN, Local Area Network)和广域网(WAN, Wide Area Network).。局域网。LAN是指在一个较少的地理范围内的各种主机互联在起的通信网络也可以包念一个或多个子网,通常范围是几赶米例如个间座大楼或一个校园内的网络都可必称为局域网。广域网CWAN的范围就大了常常是个国家个洲的是让分布较远的各局域网能够真联。
3.网络协议
人与人之间的沟通交流,是通过语言来完成。而计算机网络中的主机之间的交流,也需要一种”语言” ,这种语言是主机能够理解和识别的,称之为”网络协议”。
4.TCP/IP协议
上海人说 上海话,四川人说四川话,但四川人与上海人交流就要说普通话。类似的,”TCP/IP协议”就是不同网络之间信息交换的标准语言,不同的网络内部可以使用不同的协议,但网络之间的互联互通就要通过”TCP/IP协议”。
5.协议总结
协议其实就是为了数据交换(I/O) 而建立的一系列规则、标准或约定的集合,电脑、手机、路由器等各种网络设备,各种软件、硬件都遵守协议并实现协议,就可以顺利完成通信。
二、参考模型
OSI模型
在计算机网络产生的初期,并没有统- -的标准,每个计算机厂商都有-套自己的网络体系结构,所以不同的计算机是不兼容的,无法通信。
所以,国际标准化组织( International Standardization organization, ISO) 与1975年建立了一个分委员会,专门研究-种用于开放系统互联( Open System Interconnection,简称OSI)的体系结构,既然是“开放”,就意味着一个网络系统只要遵守 OSI 模型,就可以和位于世界上任何地方的、也遵守OSI 模型的其它网络系统连接。OSI模型成为一个全球标准,它为各种不同的系统互联提供了概念性的框架。
OSI模型把网络分为7层,分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
OSI模型把网络划分为多个层次,每层有明确的分工,相应的,每层都有标准的数据格式,来规定通信的内容和通信的方式,这种规则被称为网络协议(Protocol)。
OSI模型每层名称 | 主要功能 | 典型协议 |
---|---|---|
应用层: | 用户的应用程序和网络之间的接口。 | TELNET、FTP、TFTP、 SMTP、SNMP、 HTTP、 BOOTP、 DHCP、DNS . |
表示层: | 协商数据交换格式相当公司中简报老板、替老板写信的助理。 | 文本: ASCII,EBCDIC 图形: TIFF,JPEG ,GIF,PICT 声音: MIDI,MPEG,QUICKTIME |
会话层: | 允许用户使用简单易记的名称建立连接相当于公司中收寄信、写信封与拆信封的秘书。 | Socket、NFS、SQL、RPC、X-WINDOWS 、ASP (APPTALK会话协议)、SCP |
传输层: | 提供终端到终端的可靠连接相当于公司中跑邮局的送信职员。 | TCP、UDP、SPX |
网络层: | 使用权数据路由经过大型网络相当于邮局中的排序工人。 | IP、IPX、ICMP、RIP、OSPF(Open Shortest Path First开放式最短路径优先) |
数据链路层: | 决定访问网络介质的方式。在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址,相当于邮局中的装拆箱工人。 | SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、帧中继 |
物理层: | 将数据转换为可通过物理介质传送的电子信号相当于邮局中的搬运工人。 | EIA/TIA RS-232、EIA/TIA RS-449、V.35、 RJ-45 |
每层之间的数据交换是通过接口(Interface)来完成的。
在Java编程领域,必须重点理解应用层、表示层、 会话层、传输层。
网络层、数据链路层、物理层是更偏向网络、运维、硬件等工作方向。
TCP/IP协议
ISO制定的OSI模型,对计算机网络的发展有着重要的贡献,它提出了网络分层的思想,这种思想对网络的发展具有重要的指导意义。但由于OSI模型过于庞大和复杂,实现和运用起来非常复杂。
于是,TCP/IP (Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)模型应运而生,它吸收了网络分层的思想,又对层次做了简化,并粗为各层提供了完善的协议,这些协议构成了TCP/IP 协议集,简称TCP/IP协议。因为TCP/IP协议主要应用于广域网,在一些局域网也有应用,所以它也是目前的“事实标准”。
两种协议对比图:
基于TCP协议中的应用层协议:
基于UDP协议中的应用层协议:
DNS:域名系统协议,把主机的域名转换为对应的IP地址。
DNS 协议规定,优先请求地理位置最近的DNS服务器进行域名到IP地址的转换,如果该服务器中不存在此域名信息,会自动请求更高一级的 DNS服务器,直到请求到全球根节点DNS服务器。
网络层的IP协议:
使用IP协议的网络,被成为IP网络,即网络中每一台主机都有唯一的IP地址。IP 地址非常重要,用于表示网络中的每一台主机、 每台设备。
三、TCP与UDP区别
TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
应用场景:
虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如: QQ 语音、 QQ 视频 、直播等等。
TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。
四、在浏览器输入url地址—》显示网页的过程
总体来说分为以下几个过程:
- DNS解析
- TCP连接
- 发送HTTP请求
- 服务器处理请求并返回HTTP报文
- 浏览器解析渲染页面
-
五、Http和Https的区别
端口 :HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。
- 安全性和资源消耗:HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS高,但是 HTTPS 比HTTP耗费更多服务器资源。
- 对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
- 非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。