3.2、计算机网络及分布式系统

1、网络结构

2、网络协议

如何编写Socket套接字

服务器端编写:
1)调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口上;
2)调用accept(),监听连接请求,则接受连接,返回通信套接字;
3)调用Socket类的getOutStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收;
4)关闭通信套接字Socket.close();
客户端程序编写:
1)调用Socket()创建一个流套接字,并连接到服务器端;
2)调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收;
3)关闭通信套接字Socket.close();

局域网和广域网的区别 

a、局域网(Local Area Network),简称LAN,是指在某一区域内由多台计算机互联成的计算机组。“某一区域”指的是同一办公室、同一建筑物、同一公司和同一学校等,一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享扫描仪共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。
b、广域网(Wide Area Network),简称WAN,是一种跨越大的、地域性的计算机网络的集合。通常跨越省、市,甚至一个国家。广域网包括大大小小不同的子网,子网可以是局域网,也可以是小型的广域网。
c、局域网和广域网的区别 
局域网是在某一区域内的,而广域网要跨越较大的地域,那么如何来界定这个区域呢?例如,一家大型公司的总公司位于北京,而分公司遍布全国各地,如果该公司将所有的分公司都通过网络联接在一起,那么一个分公司就是一个局域网,而整个总公司网络就是一个广域网。


网络地址

IP地址是TCP/IP网络中用来唯一标识每台主机或设备的地址,IP地址由32位(共四个八位组)的二进制组成。IP地址分为两部分,左边网络编号部分用来标识主机所在的网络;右边部分用来标识主机本身,这部分称为主机地址。连接到同一网络的主机必须拥有相同的网络编号。

子网掩码

在TCP/IP协议中,子网掩码的作用是用来区分网络上的主机是否在同一网络取段内。在大型网络中,CLASS A的子网掩码为255.0.0.0, CLASS B的子网掩码为255.255.0.0,CLASS C的子网掩码为255.255.255.0。

广播地址

广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机

地址分类

通过IP地址的引导位(最高位)来区分不同类别的IP地址:
注:n为网络编号位,h为主机编号

A类地址:0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh

A类地址具有7位网络编号,因此可定义126个A类网络{2^7-1(网络编号不能是全0)-1(网络编号不能是全1,127为环回地址)}每个网络可以拥有的主机数为16777214{2^24-2(主机位不能是全0或全1)}

十进制表示范围:1.0.0.1-127.255.255.255,任何一个0到127间的网络地址均是一个A类地址。


B类地址:10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh

B类地址具有14位网络编号,因此可定义16382个B类网络{2^14-2}

每个网络可以拥有的主机数为65534{2^16-2}

十进制表示范围:128.0.0.1-191.255.255.255,任何一个128到191间的网络地址是一个B类地址。


C类地址:110nnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh

C类地址具有21位网络编号,因此可定义2097152个C类地址{2^21-2}

每个网络可以拥有的主机数为254{2^8-2}

十进制表示范围:192.0.0.1-223.255.255.255,任何一个192到223间的网络地址是一个C类地址。


D类地址:1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx

D类地址用于组播,前面4位1110引导,后面28位为组播地址ID。

十进制表示范围:224.0.0.0-239.255.255.255


E类地址:总是以1111四位引导

E类地址用于研究用

十进制表示范围:240-

IP地址由InterNIC(因特网信息中心)统一分配,以保证IP地址的唯一性,但有一类IP地址是不用申请可直接用于企业内部网的,这就是Private Address,Private Address不会被INTERNET上的任何路由器转发,欲接入INTERNET必须要通过NAT/PAT转换,以公有IP的形式接入。

这些私为地址为:

10.0.0.0-10.255.255.255(一个A类地址)

172.16.0.0-172.31.255.255(16个B类地址)

192.168.0.0-192.168.255.255(256个C类地址)

任何一个第一个八位组在224到239间的网络地址是一个组播地址

任何一个专用IP网络均可以使用包括:

1个A类地址( 10.0.0.0 )、

16个B类地址(从172.16.0.0到172.31.0.0 )

256个C类地址(从192.168.0.0到192.168.255.0 )

在内的任何地址


例子: 网络地址,如你是用192的C段地址,那么,你的网络地址就是:192.168.1.0,你的地址掩码是:255.255.255.0,如果地址掩码是:255.255.0.0,那么网线地址就是:192.168.0.0,网络地址很大一部分是由地址掩码决定的。
主机地址:如你的IP是192.168.1.10,地址掩码是:255.255.255.0,将这两个数据作AND运算后,所得出的值中的非0的BYTE部分即为网络号在IP地址中剩下的即为主机号,即为10。那么你的主机地址就是:192.168.1.0,这里够分配254台电脑,IP为:192.168.1.1~192.168.1.254。

与10.110.12.29Mask255.255.255.224属于同一网段的主机IP地址

10.110.12.0-10.110.12.31,网络号0,广播地址31,可用地址1-30。


3、网络安全

4、网络其他问题

ping命令

ping.exe原理:向指定IP地址发送一定长度的数据包,若指定IP地址存在,会返回同样大小的数据包;若在特定时间内没有返回,就是“超时”,就认为指定IP地址不存在。
ping使用的是ICMP(Intenet Control Message Protocol,Internet控制消息协议)协议,有些防火墙软件会屏蔽ICMP协议,故ping结果只能作为参考,ping不通并不一定说明IP不存在。

TCP三次握手和四次挥手

TCP/IP协议中,TCP协议提供可靠的连接服务,采用3次握手建立连接。

第1次握手:建立连接时,客户端发送SYN(syn=j)包到服务器,并进入SYN_SEND状态,等待服务器;

第2次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV;

第3次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端与服务器进入ESTABLISHED状态,完成3次握手;


你可能感兴趣的:(程序员面试宝典,剑指offer)