课程特点
- 网络编程
- 多任务编程
- 并发模型
- 正则表达式
- MongoDB
- Git的使用
- 项目基础讲解
网络编程
-
网络功能:
数据的传输 -
OSI七层模型
制定组织: ISO (国际标准化组织)作用 : 使网络通信的工作流程标准化 应用层:提供用户服务,具体功能由应用呈现 表示层:数据的压缩优化加密 会话层:建立用户级的连接,选择适当的传输服务 传输层:提供传输服务,进行流量监控 网络层:路由选择,网络互联 链路层:进行数据交换,控制具体数据发送 物理层:提供数据传输的硬件保证,传输介质
优点:
1. 建立了统一的工作流程
2. 各部分功能清晰,各司其职
3. 降低耦合度,方便开发四层模型: (TCP/IP模型) 背景 : 实际工作中七层模型太过细致,难以实践,逐渐演化为实际工作中应用的四层 应用层 : 集中了应用层,表示层,会话层功能 传输层 网络层 物理链路层
-
数据传输过程
【1】发送端由应用程序发送消息,逐层添加首部信息,最终在物理层完成发送。
【2】发送的消息经过多个节点(交换机,路由器)最终到达目标主机
【3】目标主机由物理层逐层解析首部,最终在应用层呈现数据内容 -
网络协议
定义: 在网络应用开发中,都遵循的规定,规则。包括建立什么样的数据结构,什么样的传输方法等 -
网络概念
【1】 网络主机(host)功能:标识一台主机在网络中的位置(地址) 本地地址:'localhost' '127.0.0.1' 网络地址:'172.40.91.112' * Linux查看地址信息: ifconfig 自动获取合适网卡地址: '0.0.0.0'
【2】 IP地址
功能: 确定一台主机的网络路由位置 结构:IPv4 点分十进制标识 172.40.91.112,每部分取值范围0--255。 IPv6 128位 fe80::5fa6:69ac:689c:f844 特殊IP : 127.0.0.1 本地测试IP 0.0.0.0 自动获取合适网卡IP 172.40.91.0 表示网段 172.40.91.1 表示网关 172.40.91.255 广播地址
【3】 域名
定义: 给网络服务器地址起的名字 作用: 方便记忆,表达一定的含义 * ping [ip] : 测试和某个主机的连接情况
【4】 端口 (port)
作用: 是网络地址的一部分,用于区分主机上不同的网络应用。 特点: 一个系统中的网络应用监听端口不重复 取值范围: 1---65535 1--1023 系统应用或者大众程序使用的端口 1024 -- 65535 自用端口
传输层服务
-
面向连接的传输服务 (基于TCP协议的数据传输)
-
传输特征:
提供了可靠的数据传输,可靠性指的是在数据传输中,无丢失,无失序,无差错,无重复。 -
实现手段:
在通信前需要建立连接,通信结束需要断开连接。- 三次握手(建立连接的过程)
- 客户端向服务端发送报文请求连接
- 服务器接收到请求后返回报文进行确认
- 客户端得到回复发送最终连接报文进行连接
- 四次挥手 (断开连接的过程)
- 主动方发送报文请求断开
- 被动方接收请求,返回报文确定开始断开
- 被动方准备就绪后,再次发送报文,表示可以断开
- 主动方收到确认,最终发送报文断开连接
- 三次握手(建立连接的过程)
-
适用情况:
对数据传输可靠性要求高,传输文件大。比如:文件传输,网页访问等面向无连接的传输服务(基于UDP协议的数据传输)
-
传输特点:不保证传输的可靠性,数据收发自由。
-
适用情况: 网络较差,对可靠性要求不高的传输。比如:网络视频,群聊,广播
-
-
面试可能会问到的
- OSI七层模型介绍一下,tcp/ip模型说一下
- tcp服务和udp服务的区别
- 三次握手和四次挥手指什么,过程怎样