一、概述
- 按地理覆盖范围分类:广域网 > 城域网 > 局域网 > 个域网
- OSI 七层模型:
- 应用层:提供用户接口
- 表示层:保证通信各方相似应用层相互发送的信息可以互相解读,表达方式一致,如:加解密,编码
- 会话层:会话管理,建立、管理,终止会话
- 传输层:数据分片,重组(协议数据单元 PDU :段)
- 网络层:将数据从源转发给目的设备,如:IP(PDU :包)
- 数据链路层:为相连或者同一局域网中设备实现数据帧传输等(PDU : 帧)
- 物理层:实现信号的传输 (PDU :比特)
- TCP/ IP 四层模型
- 应用层:等同于OSI模型中应用层,表示层和会话层之和
- 传输层:
- 互联网层:
- 网络接入层:可以视为主机与线路之间的接口
- 网络的有关性能:
- 速率:数据的传输速率,每秒能传送多少个比特
- 带宽:网络的通信线路所能传送数据的能力,在单位时间内从网络中的某一点到另一点所能通过的最高数据率
- 吞吐量:单位时间内通过某个网络或接口的事迹数据量
- 时延:数据从网络一端传送到另一端所耗费的时间
二、IP地址
- IP地址:给主机分配的一个32位的地址,用来定位计算或网络设备,不同设备,IP可相同
- 和MAC地址的区别:目标IP地址指向最终到达的计算机 ,目标MAC地址指向下一跳接收设备
- 组成:前面为网络标识,后面为主机标识,同一网段的网络标识相同
- 格式:32位二进制,分为网络地址和主机地址两部分(左起多个连续的1对应IP地址中的网络号和子网号,之后多个连续的0,对应IP地址中的主机号)
- 分类: 共有和私有
三、端口
- 用于标识主机上不同的网络服务或应用程序。每个端口号都是一个 16 位的整数,范围从 0 到 65535。但要取在1024和66535之间(256*256=66536)
- 与IP地址的区别:IP地址类似于宿舍楼号,端口类似于宿舍楼中的门牌号
四、自定义服务端
public String createServer()throws Exception {
//创建服务器
ServerSocket server = new ServerSocket(9988);//要绑定端口号
System.out.println("启动服务器");
//阻塞监听链接过来的客户端
Socket socket = server.accept();
//获取输入输出流
//获取客户端的输入流
OutputStream os = socket.getOutputStream();
//获取客户端的输出流
InputStream is = socket.getInputStream();
String msg = "连接成功\r\n";
os.write(msg.getBytes());
//关闭流
os.flush();
while (true) {
String str = readMsg(is);
System.out.println("client:" + str);
}
}
读取客户端数据
private String readMsg(InputStream is) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
int b = 0;
while ((b = is.read()) != 13) {
//拼接一条聊天消息
stringBuilder.append((char) b);
}
return stringBuilder.toString().trim();
}
调式出电脑的客户端进行验证
win–控制面板–程序–启用或关闭Windows功能–勾选Telnet客户端
- 在命令提示符中查找本机IP地址
- win+R 输入 cmd 按Enter键 运行命令ipconfig 找到IP地址
- 输入telnet + IP地址 + 端口 连接服务端
- 这样就可以接收到输入的内容了