web学习(1)--网络的基础知识

1.服务器与客户机

服务器负责发送数据,客户机接受数据,但是很多时候,服务器与客户机很难区分开来。
也有的说,服务器就是安装了服务器软件的电脑。

2.局域网与广域网

我们通常所说的“局域网”(Local Area Network,简称LAN),就是一群通过一定形式连接起来的计算机。它可以由两台计算机组成,也可以由同一区域里面的上千台计算机组成。由LAN延伸到更大的范围,这样的网络称为“广域网”(Wide Area Network,简称WAN)。我们熟悉的因特网(Internet),则是由无数的LAN和WAN组成。

3.网络通信的几个重要要素

(1)IP:计算机在网络中的唯一标识

“IP”其实是Internet Protocol的简称,由此明显可知它就是一种“网络协议”。Internet网络采用的协议是TCP/IP协议。它的全称是Transmission Control Protocol/Internet Protocol。Internet依靠TCP/IP协议,在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的互联。在Internet网上存在数以亿计的主机,每一个主机在网络上通过为其分配的Internet地址表示自己,这个地址就是IP地址。到目前为止IP地址用4个字节,也就是32位的二进制数来表示,称为Ipv4。为了便于使用,通常取用每个字节的十进制数,并且每个字节之间用圆点隔开来表示IP地址。如192.168.1.1。现在人们正在试验使用16个字节来表示IP地址,这就是Ipv6。

(2)端口:应用程序在网络中的唯一标识

一般而言,一台计算机只有单一的连到网路的“物理连接”(physical connection),所有的数据都通过此连接,对内、对外送达特定的计算机。这就是端口。网路程序设计中的端口(port)并非真实的物理存在,而是一个假想的连接装置。端口被规定为一个在0~65535之间的整数。HTTP服务一般使用80端口,FTP服务使用21端口。假如一台计算机提供了HTTP、FTP等多种服务,那么客户机通过不同的端口来确定连接到服务器的哪项服务上。
通常0~1023之间的端口数是用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口数,以避免端口号与另一个应用或系统服务所用端口冲突。

web学习(1)--网络的基础知识_第1张图片

(3)TCP与UDP协议

传输控制协议”(Transmission Control Protocol,简称TCP)与“用户数据报协议”(User Datagram Protocol,简称UDP)。
TCP协议是一种以固接连线为基础的协议,它提供两台计算机间可靠的数据传送。TCP可以保证从一端数据送至连接的另一端时,数据能够确实送达,而且抵达的数据的排列顺序和送出时的顺序相同。因此TCP协议适合可靠性要求比较高的场合。就想拨打电话一样,必须先拨号给对方,等两端确定连接后,相互能听到对方的说话,也知道对方回应的是什么。
UDP是无连接通信协议,不保证可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。UDP是以独立发送数据包的方式进行。这种方式就像邮递员送信给收信人,可以寄出很多信给同一个人,而每一封信都是相对独立的,各封信送达的顺序并非重要。而收信人接收信件的顺序也不能保证与寄出信件的顺序相同。

UDP协议适合于一些对数据准确性要求不高的场合。例如网络聊天室、在线影片等。由于TCP协议在认证上个额外耗费,有可能使传输速度减慢。UDP协议可能会更适合这些对传输速度和时效要求非常高的网站。即使有一小部分数据包的遗失、或传送顺序有所不同,并不会严重危害该项通讯。
一些防火墙和路由器会设置成不允许UDP数据包传输,因此若遇到UDP连接方面的问题,应先确定是否允许UDP协议。

HTTP与TCP的区别和联系可以参考:https://www.cnblogs.com/baizhanshi/p/8482612.html

(4)套接字socket

网络程序中套接字(Scoket)用于将应用程序与端口连接起来。套接字是一个假想的连接装置。就像插插头的设备“插座”,用于连接电器与电线。如图2所示。Java将套接字抽象化为类,程序设计者只须创建Socket类对象,即可使用套接字。
web学习(1)--网络的基础知识_第2张图片

(5)服务器与客户端交互过程

web学习(1)--网络的基础知识_第3张图片
1:服务器程序创建一个ServerSocket(服务器端套接字),调用accept()方法等待客户来连接。
2:客户端程序创建一个Socket,请求与服务器建立连接。
3:服务器接收客户的连接请求,同时创建一个新的Socket与客户建立连接。服务器继续等待新的请求。

你可能感兴趣的:(Web)