TCP/IP到底指的是什么?
答:把与互联网向关联的协议集合起来总称为TCP/IP。也有说法认为,TCP/IP是指TCP和IP这两种协议。还有一种说法认为,TCP/IP是在IP协议的通信过程中,使用到的协议族的统称。
TCP/IP协议族可分为几层?分别是哪几层?
答:4层。应用层、传输层、网络层、数据链路层。
介绍一下应用层
答:应用层决定了向用户提供应用服务时通信的活动。
TCP/IP协议族预存了各类通用的应用服务。比如FTP(文件传输协议)和DNS(域名系统)服务就是其中两类。
HTTP协议也属于应用层。
介绍一下传输层
答:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
在传输层由两个性质不同的协议:TCP(传输控制)和UDP(用户数据报协议)。
介绍一下网络层
答:网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内旋转一条传输路线。
IP(Internet Protocol)网际协议位于网络层。IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址。
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本上不会更改。
注意:不要把IP协议和IP地址搞混了。
介绍一下数据链路层
答:用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、网卡、光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。
HTTP协议属于TCP/IP协议族中的哪一层?
答:应用层。
TCP协议和UDP协议属于TCP/IP协议族中的哪一层?
答:网络层。
IP协议属于TCP/IP协议族中的哪一层?
答:传输层。
网卡、光纤等硬件部分属于TCP/IP协议族中的哪一层?
答:数据链路层。
结合TCP/IP协议族说明发送一个HTTP请求需要经过哪些步骤?
答:1.发送端的应用层发送一个HTTP请求
2.在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网路层。
3.在网路层(IP协议),增加作为通信目的地的IP地址后转发给链路层。
4.链路层将请求发送给接收端服务器。
5.接收端服务器的链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能真正接收到由发送端发送过来的HTTP请求。
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时。每经过一层时会把对应的首部消去。
DNS服务是和HTTP协议一样位于应用层,它的作用是什么?
答:提供域名到IP地址之间的解析服务。(域名解析)
描述一下TCP协议的三次握手
答:1.发送端首先发送一个带SYN(sychronize)标志的数据包给接收端。
2.接收端收到后传一个带SYN/ACK标志的数据包给发送端,以示传达确认信息。
3.最后,发送端再回传一个带ACK标志的数据包给接收端,代表“握手”结束。
UDP和TCP/IP协议都是传输层的通信协议,它们的区别是什么呢?
答:UDP:将数据源和目的封装在数据包中,不需要建立连接;每个数据包的大小限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。
TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。
举例:
UDP:发短信
TCP:打电话
什么是URL?什么是URI?二者有什么关系?
答:URL,统一资源定位符。URI,统一资源标识符。URL是URI的子集。
网络7层模型指哪7层?
答:应用层、表示层、会话层、网络层、传输层、链路层、物理层。
我们通常说交换机,它属于网络7层中的哪一层的设备呢?
答:属于链路层。
7层模型中的哪一层将计算机能识别的数据转成了人能识别的数据?
答:表现层。
网络编程三要素:IP地址、端口、协议(TCP/IP和UDP)。
其中:IP地址属于网络层,端口和协议属于传输层。
什么是IP地址?由什么组成?分几类?
答:IP地址是网络中计算机的唯一标识。IP地址由网络号段和主机号段组成。分5类,分别是A类、B类、C类、D类、E类。
在Window操作系统中,查询本机的IP地址,假如通过Doc命令的方式,用什么命令可以查?
答:ipconfig
什么是端口?有效端口的范围是多少?
答:端口是正在运行的应用程序的标识。有效端口的范围是0~65535。
网络编程
在网络互连的不同计算机上运行的程序间可以进行数据交换。
Scoket就是为网络通信服务提供的一种机制。通信的两端都有Socket。网络通信其实就是Socket间的通信,数据在两个Socket间通过IO传输。
UDP和TCP/IP协议都是传输层的通信协议,它们的区别是什么呢?
答:UDP:将数据源和目的封装在数据包中,不需要建立连接;每个数据包的大小限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。
TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。
举例:
UDP:发短信
TCP:打电话
UDP协议是如何发送和接收数据的?(编程步骤)
答:
发送数据:
创建发送端Socket对象
创建数据并打包
发送数据
释放资源
接收数据:
创建接收端Socket对象
创建接收的数据包
接收数据
解析数据,并显示在控制台
释放资源
TCP/IP协议是如何发送和接收数据的?
答:
发送数据:
创建TCP客户端的Socket对象
获取输出流,写数据
释放资源
// 创建发送端的Socket对象 Socket s = new Socket("192.168.12.92", 8888);
// 获取输出流,写数据 OutputStream os = s.getOutputStream(); os.write("hello,tcp,我来了".getBytes());
// 释放资源 s.close();
|
接收数据:
创建TCP服务器端的Socket对象
监听客户端连接
获取输入流,读取数据
释放资源
// 创建接收端的Socket对象 ServerSocket ss = new ServerSocket(8888);
// 监听客户端连接。返回一个对应的Socket对象 Socket s = ss.accept(); // 侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。
// 获取输入流,读取数据显示在控制台 InputStream is = s.getInputStream();
byte[] bys = new byte[1024]; int len = is.read(bys); // 阻塞式方法 String str = new String(bys, 0, len);
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip + "---" + str);
// 释放资源 s.close(); // ss.close(); //这个不应该关闭 |