一、常见的网络通信的基本模型有哪些
常见的通信模式有如下2种形式:Client/Server(CS) 、 Browser/Server(BS)。
Client-Server(CS):这种称为CS架构,由客户端和服务端组成。微信、Idea就是典型的CS架构,手机上下载的微信软件就是客户端,我们发消息到腾讯的服务器就是发送消息到服务端。下载到电脑上的Idea软件就是客户端,Idea进行更新或者我们下载插件,Idea就要和远程的服务端进行交互。
Browser/Server(BS):这种称为BS架构,由浏览器和服务端组成。我们通过网页访问淘宝、京东的网站就是典型的BS架构。
这两种通信模式的最大区别就在于:CS架构需要用户安装客户端,BS架构用户直接用浏览器进行访问。
二、网络通信的三要素
网络通信的三要素有:Ip地址、端口号、网络协议。
Ip地址:网络中每一台上网设备的唯一标识,可以理解为身份证,通过这个身份证可以确定具体哪一台网络设备。
端口号:主机上应用程序的标识,例如主机上微信的端口号为888,idea的端口号为777,这样就可以在主机上将这两个应用程序进行区分,端口号实际上就是主机上应用程序的编号,用来在主机上区分应用程序。
网络协议表示连接和通讯数据的规则,例如使用TCP协议是先建立连接再传输数据,所以TCP协议是面向有连接的、可靠的网络协议,而UDP协议是面向无连接,不可靠,数据大小有限制的。
三、七层网络协议有哪些。(物联网传话,表示应用)
互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层。实际上这个七层是不存在的。没有这七层的概念,只是人为的划分而已。区分出来的目的只是让你明白哪一层是干什么用的。
每一层都运行不同的协议。协议是干什么的,协议就是标准。
四、各层协议的含义
其中HTTP协议位于应用层、TCP、UDP协议位于传输层,HTTP协议是基于TCP协议的。
参考网址:
在现实的网络中实际上是采用TCP/IP网络模型,这种模型是四层网络协议,是基于OSI协议的。
程序员实际上只用关注TCP/IP网络模型中的应用层,因为程序员一般在这一层进行开发。
五、如何查看自己的Ip地址
Windows+R、cmd、ipconfig
以192.168.开头的是局域网的地址,也就是内网IP。
六、IPV4和IPV6的区别
IpV4只有32位,即4个字节的地址长度;IpV6协议有128位(16字节)的地址长度,Ipv6诞生的主要原因就是其网络地址非常之多,解决了Ipv4地址不足的困扰。
七、比特位、字节、KB、M、G、T之间的关系。
8bit(比特位)= 1Byte(字节)
1024B(字节)= 1KB(千字节)
1024KB(千字节)= 1M(兆字节)
1024M = 1G
1024G = 1T
B是Byte的缩写,B就是Byte,也就是字节(Byte)
b是bit的缩写,b就是bit,也就是比特位(bit)
八、域名和IP地址之间的关系
我们平常上网搜索的地址一般都是域名,例如我们搜索www.baidu.com,本机的dns服务器(域名解析器)就会把域名解析为IP地址返回给我们的计算机,计算器再通过IP地址访问百度的服务器,百度的服务器再把数据展示到浏览器上面。(如果本机的域名解析器没有这个域名,就会通过电信、移动等宽带供应商的dns服务器将域名进行解析)
九、公网IP和内网IP的区别
以192.168.开头的是局域网的地址,也就是内网IP。
1,百度查到的IP地址,通常是给一个的单位或者一个区域的,我们称这样的ip地址为公有IP地址,公有ip地址可以跟其它网络传输信息,也就是说这样的IP地址才能上网;
2,我们实际能够接触的ip地址,也就是ipconfig看到的,一般是私有地址,是局域网内部的地址,不能跟跟外界网络直接交换信息,也就是这样的IP地址无法上网;
3,公有地址和私有地址的联系,当联网时,我们主机IP地址发送的消息,会先被传输到路由器,然后路由器将它的ip地址加到消息的头部,路由器的ip地址将作为网络中传输信息的源地址,只有以路由器的ip地址作为信息源地址的数据,才能被其它路由器转发;
十、使用ping ip地址的作用
ping ip地址实际上就是检查本机和ping后面的ip地址是否是连通的。例如ping www.baidu.com就是检查本机和百度之间是否连通,上面的返回结果表示本机和百度之间是连通的。如果不连通则表示本机的网络设置出现了问题,或者百度的服务器挂了。
十一、TCP协议和UDP协议的特点
使用UDP协议在传输数据的过程中可能造成数据的丢失,如果用于语音通话或者视频直播,只会造成音量变小或者视频模糊一点,不会对业务造成影响。所以UDP协议可以用于语音通话或者视频直播。
十二、TCP协议的三次握手、四次挥手
三次握手:
四次挥手:
十三、UDP通信-快速入门
客户端代码:
服务端代码:
总结:
1、UDP发送端和接收端的对象都是DatagramSocket
public DatagramSocket():创建发送端的Socket对象(客户端发送)
public DatagramSocket(int port):创建接收端的Socket对象(服务端接收)
2、数据包对象是DatagramPacket,
客户端中DatagramSocket的impl成员变量中可以查看客户端的端口号,客户端不用注册端口,存在默认端口。
服务端中的DatagramPacket可以查看客户端的IP地址和端口号,同样的可以在DatagramSocket的impl成员变量中可以查看自身的端口号
十四、TCP通信-快速入门
客户端代码:
服务端代码:
总结:
1、TCP通信的客户端和服务端代表的对象分别是Socket类和ServerSocket类。
2、服务端可以在Socket中查看客户端(发送端)的Ip地址、端口号以及自身的端口号,客户端可以在Socket中查看服务端(目标端)的IP地址、端口号以及自身的端口号。