1.网络通信协议分几层?各层解决的问题是什么?
1、物理层
主要是处理机械的、电气的和过程的接口,以及物理层下的物理传输介质等。
2、数据链路层
的任务是加强物理层的功能,使其对网络层显示为一条无错的线路。
3、网络层
确定分组从源端到目的端的路由选择。路由可以选用网络中固定的静态路由表,也可以在每一次会话时决定,还可以根据当前的网络负载状况,灵活地为每一个分组分别决定。
4、传输层
从会话层接收数据,并传输给网络层,同时确保到达目的端的各段信息正确无误,而且使会话层不受硬件变化的影响。通常,会话层每请求建立一个传输连接,传输层就会为其创建一个独立的网络连接。
5、会话层
允许不同机器上的用户之间建立会话关系,既可以进行类似传输层的普通数据传输,也可以被用于远程登录到分时系统或在两台机器间传递文件。
6、表示层
用于完成一些特定的功能,这些功能由于经常被请求,因此人们希望有通用的解决办法,而不是由每个用户各自实现。
7、应用层
包含了大量人们普遍需要的协议,不同的文件系统有不同的文件命名原则和不同的文本行表示方法等,不同的系统之间传输文件还有各种不兼容问题,这些都将由应用层来处理。此外,应用层还有虚拟终端、电子邮件和新闻组等各种通用和专用的功能。
2.TCP和 UPD协议有什么不同,为什么称TCP是面向连接的可靠的协议?
TCP面向连接,需要先连接再发送消息;UDP不需要建立连接,直接进行消息发送,所以无法确保传送百分百正确
3.在Java语言当中,网络编程是从协议的什么层次开始的?程序设计时,什么情况选择Java高层次网络编程,什么情况下选择低层次网络编程?
传输层。
低层次网络编程是TCP和UDP,高层次网络编程是基于URL的。
4.Socket编程时,目的地址和端口号需要在什么地万指出?使用数据报时,又在什么地方指出?
Socket编程:创建客户端时。
数据报:构造DatagramPacket时,并且是发送消息时
5.利用 URLConnetction对象编写程序返回某网站的首页,并将首页内容存放到文件当中。
6.仿照例15.4,编写完整的基于Socket的多客户/服务器通信程序
与书本基本一致,增加了客户之间的通信
参考先绅博客
7.仿照例15.5,编写完整的基于数据报的多客户/服务器通信程序
与书本基本一致,客户端增加从页面输入文字然后发送的功能