网络编程(socket编程)知识点总结

TCP/IP到底指的是什么?

答:把与互联网向关联的协议集合起来总称为TCP/IP。也有说法认为,TCP/IP是指TCPIP这两种协议。还有一种说法认为,TCP/IP是在IP协议的通信过程中,使用到的协议族的统称。

TCP/IP协议族可分为几层?分别是哪几层?

答:4层。应用层、传输层、网络层、数据链路层。

介绍一下应用层

答:应用层决定了向用户提供应用服务时通信的活动。

TCP/IP协议族预存了各类通用的应用服务。比如FTP(文件传输协议)DNS(域名系统)服务就是其中两类。

HTTP协议也属于应用层。

介绍一下传输层

答:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

在传输层由两个性质不同的协议:TCP(传输控制)和UDP(用户数据报协议)。

介绍一下网络层

答:网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。

与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内旋转一条传输路线。

IPInternet 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标志的数据包给接收端,代表“握手”结束。

UDPTCP/IP协议都是传输层的通信协议,它们的区别是什么呢?

答:UDP将数据源和目的封装在数据包中,不需要建立连接;每个数据包的大小限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。

TCP建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。

举例:

UDP:发短信

TCP:打电话

什么是URL?什么是URI?二者有什么关系?

答:URL,统一资源定位符。URI,统一资源标识符。URLURI的子集。

网络7层模型指哪7层?

答:应用层、表示层、会话层、网络层、传输层、链路层、物理层。

我们通常说交换机,它属于网络7层中的哪一层的设备呢?

答:属于链路层。

7层模型中的哪一层将计算机能识别的数据转成了人能识别的数据?

答:表现层。

网络编程三要素:IP地址、端口、协议(TCP/IPUDP)。

其中:IP地址属于网络层,端口和协议属于传输层。

什么是IP地址?由什么组成?分几类?

答:IP地址是网络中计算机的唯一标识。IP地址由网络号段主机号段组成。分5类,分别是A类、B类、C类、D类、E类。

Window操作系统中,查询本机的IP地址,假如通过Doc命令的方式,用什么命令可以查?

答:ipconfig

什么是端口?有效端口的范围是多少?

答:端口是正在运行的应用程序的标识。有效端口的范围是0~65535

网络编程

网络互连的不同计算机上运行的程序间可以进行数据交换。

Scoket就是为网络通信服务提供的一种机制。通信的两端都有Socket。网络通信其实就是Socket间的通信数据在两个Socket间通过IO传输。

UDPTCP/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(); //这个不应该关闭

猜你喜欢

转载自blog.csdn.net/lz1170063911/article/details/80025890