《西安电子科技大学计算机网络大作业.pdf》由会员分享,可在线阅读,更多相关《西安电子科技大学计算机网络大作业.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、一、利用 windows socket 编写一个简单的聊天程序,要求接收方可以接收并显示发送方在键盘上输入的文字。服务器端截图:客户端截图:客户端发送消息:计算机网络,服务器端接收到之后,发送消息:大作业,客户端接收到并在屏幕上显示。代码:import java.io.DataInputStream;import java.io.DataOutputStream;import .ServerSocket;import .Socket;import java.util.Scanner;/服务器端public class TCP_Server static final int port=369
2、76;static ServerSocket sSocket;public static void main(String args)Scanner scanner=new Scanner(System.in);try sSocket=new ServerSocket(port);System.out.println(监听+port+接口.);/while(true)Socket socket=sSocket.accept();DataInputStream din=new DataInputStream(socket.getInputStream();DataOutputStream dou
3、t=new DataOutputStream(socket.getOutputStream();dout.writeUTF(成功连接服务器端);String tempStr=din.readUTF();while(!tempStr.contains(exit)System.out.println(客户端信息:+tempStr);dout.writeUTF(scanner.nextLine();tempStr=din.readUTF();System.out.println(客户端信息:+tempStr);din.close();dout.close();socket.close();/catc
4、h(Exception e)e.printStackTrace();scanner.close();import java.io.DataInputStream;import java.io.DataOutputStream;import .Socket;import java.util.Scanner;public class TCP_Client static final int port=36976;public static void main(String args)Scanner scanner=new Scanner(System.in);String serverIp=127.
5、0.0.1;try Socket socket=new Socket(serverIp,port);DataInputStream din=new DataInputStream(socket.getInputStream();DataOutputStream dout=new DataOutputStream(socket.getOutputStream();String tempStr=Hi!;while(!tempStr.contains(exit)System.out.println(服务端端信息:+din.readUTF();tempStr=scanner.nextLine();do
6、ut.writeUTF(tempStr);dout.flush();din.close();dout.close();socket.close();catch(Exception e)e.printStackTrace();scanner.close();一、利用网络抓包软件 wireshark 捕获三个以上的协议并进行分析。1、TCP 协议TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF 的 RFC 793 定义。在简化的计算机网络OSI 模型中,它完成第四层传输层所指定的功能,用户数据报协议(
7、UDP)是同一层内1 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP 层是位于 IP 层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是 IP 层不提供这样的流机制,而是提供不可靠的包交换。上图为打开人民日报微博主页时抓到的,图中可以看到 wireshark 截获到了三次握手的三个数据包。第四个包才是HTTP 的,这说明 HTTP 的确是使用 TCP 建立连接的。客户端发送的第一条为 SYN 消息,序号 seq=0,不可携带数据但消耗了一个序号。服务器同意链接,回复一条SYN+ACK 消息,序号 seq=0,
8、依旧不可携带数据但是消耗一个序号。客户端收到服务器发送的同意链接消息后再回复一条ACK 消息,此时 seq=1。此时链接就已经建立。下面还包括了封包的详细信息:Frame:物理层的数据帧概况Ethernet II:数据链路层以太网帧头部信息Internet Protocol Version 4:互联网层 IP 包头部信息Transmission Control Protocol:传输层 T 的数据段头部信息,此处是 TCPHypertext Transfer Protocol:应用层的信息,此处是 HTTP 协议2、ARP 地址解析协议地址解析协议,即 ARP(Address Resoluti
9、on Protocol),是根据 IP 地址获取物理地址的一个 TCP/IP 协议。主机发送信息时将包含目标 IP 地址的 ARP 请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该 IP 地址和物理地址存入本机 ARP 缓存中并保留一定时间,下次请求时直接查询 ARP 缓存以节约资源图中目的地址为 Broadcast 的即为广播请求分组,分组中含有自己的 IP 地址、物理地址以及所请求的物理地址对应的 IP 地址。目的地址为d8:49:0b:b5:7c:55(我的电脑的物理地址)的就是请求到的响应消息。3、HTTP 协议超文本传输协议(HTTP,Hyper
10、Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收HTML 页面的方法。1960 年美国人 TedNelson 构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了 HTTP 超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force)共同合作研究,最终发布了一系列的 RFC,其中著名的 RFC 2616 定义了 HTTP 1.1。图中蓝色那一行是 Http 协议的响应信息。Http/1.1 表示当前协议为 Http,1.1是协议的版本。200 表示成功,即表示成功加载了一张图片。