七层网络模型

为了保证数据传输的可靠和安全等,ISO将数据的传递从逻辑上划分为以下七层:
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
当发送数据时,需要按照上述七层进行层层加包然后发送出去
当接收数据时,需要按照上述七层相反的次序层层拆包再解析出来

常用的协议
http - 超文本传输协议,用于浏览网页时使用
ftp - 文件传输协议,用于上传和下载文件时使用
tcp - 传输控制协议,用于网络通信时使用
udp - 用户数据报协议,用于网络通信时使用
ip - 互联网协议,是上述协议的底层协议

协议 - 本质上就是一种规则,用于约定双方通信的机制

*IP地址 *
如:
192.168.1.1 - 是绝大多数路由器的登录地址,进行MAC地址的过滤

IP地址是互联网中的唯一地址标识,本质上是由32位二进制组成的整数,叫做IPv4,当然也有128位二进制组成的整数,叫做IPv6,目前的主流是IPv4.
日常生活中采用点分十进制表示法进行IP地址的描述,也就是让每个字节的二进制转换为一个十进制整数,不同的十进制整数之间采用小数点隔开
如:
0x01 02 03 04(十六进制) => 1.2.3.4

查看IP地址的方式:
windows系统:在dos窗口中使用ipconfig或者ipconfig/all命令查看
linux系统: 在终端窗口中使用ifconfig或者/sbin/ifconfig命令查看

端口号
IP地址 - 可以定位到具体某一台设备
端口号 - 可以定位到具体某一个进程
网络编程需要提供:IP地址 + 端口号

端口号本质上是由16位二进制组成的整数,
范围是:0 ~ 65535,其中0 ~ 1024之间的端口号一般被系统占用,
因此编程从1025开始使用

基于tcp协议的编程模型
编程模型
服务器:
(1)创建ServerSocket类型的对象并提供端口号;
(2)等待客户端的连接请求,调用accept()方法;
(3)使用输入输出流进行通信;//////////BufferedReader bu = new BufferedReader(new InputStreamReader (so.getInputStream()));
(4)关闭Socket;
客户端:
(1)创建Socket类型的对象并提供服务器的IP地址和端口号;
(2)使用输入输出流进行通信;
(3)关闭Socket;

相关类和方法的解析

ServerSocket类

java.net.ServerSocket类是用于描述服务器的套接字(大插排)
ServerSocket(int port)- 根据参数指定的端口号构造对象
Socket accept()- 侦听并接收到此套接字的连接请求
void close()

Socket类

java.net.Socket类用于描述客户端的套接字(小插排),是两台设备间通信的端点
Socket(String host, int port) - 根据参数指定的主机名和端口号构造对象
InputStream getInputStream() - 用于获取该套接字的输入流
OutputStream getOutputStream() - 用于获取该套接字的输出流
void close()



10月      Java

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!