含答案 全网最全的Java岗网络编程+异常处理面试题

IP地址和端口号
1)IP地址
用来标志网络中的一个通信实体的地址 。通信实体可以是计算机,路由器等 。
2)IP地址分类
IPV4:32位地址,以点分十进制表示,如192.168.0.1
IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,数之间用冒号(:)分开,如:
3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
3)特殊的IP地址
127.0.0.1 本机地址
192.168.0.0--192.168.255.255私有地址,属于非注册地址,专门为组织机构内部使用 。
4)端口:port
IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用端口来区分这些应用程序 。端口是虚拟的概念,并不是说在主机上真的有若干个端口 。通过端口,可以在一个主机上运行多个网络应用程序 。端口范围0---65535,16位整数
5)端口分类
公认端口 0—1023 比如80端口分配给WWW,21端口分配给FTP,22端口分配给SSH,23端口分配给telnet,25端口分配给smtp
注册端口 1024—49151 分配给用户进程或应用程序
动态/私有端口 49152--65535
6)理解IP和端口的关系
IP地址好比每个人的地址(门牌号),端口好比是房间号 。必须同时指定IP地址和端口号才能够正确的发送数据
IP地址好比为电话号码,而端口号就好比为分机号 。
介绍OSI七层模型和TCP/IP模型

含答案 全网最全的Java岗网络编程+异常处理面试题

文章插图
 
OSI(Open System Interconnection),开放式系统互联参考模型。是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为了7层 。每一层都有相关、相对应的物理设备,比如常规的路由器是三层交换设备,常规的交换机是二层交换设备 。OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能就是帮助不同类型的主机实现数据传输 。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯 。
TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,主要由网络层的IP协议和传输层的TCP协议组成 。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准 。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求 。
ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评 。伴随着互联网的流行,其本身所采用的TCP/IP协议栈获得了更为广泛的应用和认可 。在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现) 。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层 。
TCP协议和UDP协议的比较
TCP和UDP是TCP/IP协议栈中传输层的两个协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层协议(包括:HTTP、SMTP、SNMP、FTP和Telnet)提供网络服务 。
TCP的server和client之间通信就好比两个人打电话,需要互相知道对方的电话号码,然后开始对话 。所以在两者的连接过程中间需要指定端口和地址 。
UDP的server和client之间的通信就像两个人互相发信 。我只需要知道对方的地址,然后就发信过去 。对方是否收到我不知道,也不需要专门对口令似的来建立连接 。具体区别如下:
1)TCP是面向连接的传输 。UDP是无连接的传输
2)TCP有流量控制、拥塞控制,检验数据数据按序到达,而UDP则相反 。
3)TCP的路由选择只发生在建立连接的时候,而UDP的每个报文都要进行路由选择
4)TCP是可靠性传输,他的可靠性是由超时重发机制实现的,而UDP则是不可靠传输
5)UDP因为少了很多控制信息,所以传输速度比TCP速度快
6)TCP适合用于传输大量数据,UDP适合用于传输小量数据
什么是Socket编程
Socket编程的定义如下:
所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄 。应用程序通常通过"套接字"向网络发出请求或者应答网络请求 。
我们开发的网络应用程序位于应用层,TCP和UDP属于传输层协议,在应用层如何使用传输层的服务呢?在应用层和传输层之间,则是使用套接字来进行分离 。
套接字就像是传输层为应用层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数据;而这个小口以内,也就是数据进入这个口之后,或者数据从这个口出来之前,是不知道也不需要知道的,也不会关心它如何传输,这属于网络其它层次的工作 。


推荐阅读