第1章-网络编程基础讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TCP/IP协议栈模型 应用层
TELNET HTTP SMTP POP3 FTP DNS DHCP RIP SNMP …
传输层
TCP
UDP
网络层
ICMP IGMP
IP
ARP RARP
网络接口层 各种底层物理网络(局域网、城域网、广域网、互联网……)
OSI模型 应用层 表示层 会话层 传输层
网络层
数据链路层 物理层
相对中低端,编程者自由度大,可编写各种网络应用。 开发支撑平台是网络操作系统,编程语言的选择:
C/C++
网络编程与进程通信
网络编程
网络应用程序最终要实现网络资源的共享 网络编程首先要解决网间进程通信的问题,然后才
能在通信的基础上开发各种应用功能。
网间进程通信
进程
处于运行过程中的程序实例,是操作系统调度和分 配资源的基本单位。
协议是“水平的”
即协议是控制对等实体之 间通信的规则。
服务是“垂直的”
服务是由下层向上层通过 层间接口提供的。
实体(n + 1)
N+ 1层协议
实体(n + 1)
SAP 实体(n)
第N+1层
N层协议
SAP 实体(n)
第N 层
开放系统互联参考模型
实体分层 数据型态 协议层次
主要功能描述
7.应用层
熟知端口:0—1023,全局分配(静态分配) 自由端口号:1024-65535,本地分配(动态分配)
TCP或UDP端口的分配规则是:
端口0:不使用,或者作为特殊的使用; 端口1-255:保留给特定的服务,TCP和UDP均规定,小于
256的端口号才能分配给网上著名的服务; 端口256-1023:保留给其他的服务,如路由; 端口1024-4999:可以用作任意客户的端口; 端口5000-65535:可以用作用户的服务器端口。
类似于文件描述符,每个端口都拥有一个叫作端口号 (port number)的整数型标识符。
从实现的角度讲,端口是一种抽象的软件机制,包括 一些数据结构和I/O缓冲区。
UDP与TCP的报文格式
端口号的分配机制
对于TCP,或者UDP,将它们的全部65535个端口号分 为保留端口号和自由端口号两部分。
远地机IP地址,远地机传输层端口)
网络通信方式
两类通信方式
面向无连接的通信和面向连接的通信
面向无连接的通信
无连接服务是邮政系统服务的抽象,每个分组都携 带完整的目的地址,各分组在系统中独立传送。
传输层的用户数据报协议(UDP)是一种尽力传送 的无连接的不保障可靠的传输服务
是一种保护消息边界的数据报传输。
保护消息边界的数据报传输
面向连接的通信
面向连接的通信
面向连接服务是电话系统服务模式的抽象,即每一次 完整的数据传输都要经过建立连接,使用连接,终止 连接的过程。
传输控制协议 (TCP)应用层进程提供一个面向连接的、 端到端的、完全可靠的全双工的流传输服务。
无消息边界的流传输服务
阻塞通信与非阻塞通信
阻塞的概念
阻塞是指一个进程执行了一个函数或者系统调用, 该函数由于某种原因不能立即完成,因而不能返回 调用它的进程,导致进程受控于这个函数而处于等 待的状态,进程的这种状态称为阻塞。
应用层的源进程将报文发送给运输层的某个服务访问 点,而应用层的目的进程从这个访问点接收报文。
Internet中网间进程的标识
端口( port )
端口是TCP/IP协议族中,应用层进程与传输层协议实 体间的通信接口
TCP/IP协议提出了传输层协议端口的概念,成功地解 决了通信进程的标识问题。
使用端口的通信示例
使用端口的通信示例
如何实现服务器同时为多个客户机服务?
服务器
客户端进程
客户端1
ห้องสมุดไป่ตู้
服务器进程
线程1
客户端1 线程
创建
会话
会话 TCP/IP
线程2 …...
监
听
线 程
创 建
客户端2 线程
会话
…... 创建
客户端N
线程
会话
TCP/IP TCP/IP
会话 客户端2
…...
会话 客户端 N
数据结构
第1章 网络编程基础
杨明 紫金学院计算机系
2020/8/18
教学内容和安排
内容
章
网络编程基础
1
套接字网络接口基础
2
Windows环境的网络编程 3
MFC WinSock类的编程
5
WinInet编程
6
WinSock的多线程编程
5
机动
学时 4 4 6 8 4 4 2
内容
网络编程相关的基本概念 网络通信方式 套接字编程模型
TCP/IP协议族
Everything Over IP IP over everything
应用层 运输层 网际层
HTTP … SMTP DNS … RTP
TCP
UDP
IP
网络接口层
网络接口 1 网络接口 2 … 网络接口 3
Internet中网间进程的标识
传输层
是计算机网络中通信主机内部进行独立操作的第一层, 是支持端到端的进程通信的关键一层。
网络编程说明
Web开发
基于WWW的网络应用编程技术,包括网页制作工具, 动态服务器页面制作技术。
相对高端、网站类应用 开发支撑平台是Web服务器,如ASP、JSP和PHP等。
网络编程
基于TCP/IP协议栈,主要是使用各种编程语言,利用操 作系统提供的套接字网络编程接口,直接开发各种网络 应用。
应用程序进程顶层设计
Data 主机层
6.表示层 5.会话层
数据格式变换,加密解密等 主机内部模块间通信
Segment 4.传输层
端对端连接,流量控制等
网络互联 设备媒体 层
Packet Frame Bit
3.网络层
逻辑寻址等
2.数据链路层 介质访问控制、物理寻址等
1.物理层
信号传输
TCP/IP协议栈模型
网间进程通信是指网络中不同主机中的应用进 程之间的相互通信问题
网间进程通信必须解决以下问题
网间进程的标识问题 如何与网络协议栈连接的问题 多重协议的识别问题 不同的通信服务的问题
计算机网络的分层模型
协议
控制两个对等实体进行通 信而建立的规则、标准或 约定
服务
每层为相邻上一层提供的 功能。
Internet中网间进程的标识
进程的网络地址
在因特网络中,用一个三元组可以在全局中唯一地标识一个 应用层进程
进程网络地址=(传输层协议,主机的IP地址,传输层的端 口号)
网络中进程的通信标识
一个完整的网间通信需要两个进程组成,构成通信的两端 五元组:(传输层协议,本地机IP地址,本地机传输层端口,
TELNET HTTP SMTP POP3 FTP DNS DHCP RIP SNMP …
传输层
TCP
UDP
网络层
ICMP IGMP
IP
ARP RARP
网络接口层 各种底层物理网络(局域网、城域网、广域网、互联网……)
OSI模型 应用层 表示层 会话层 传输层
网络层
数据链路层 物理层
相对中低端,编程者自由度大,可编写各种网络应用。 开发支撑平台是网络操作系统,编程语言的选择:
C/C++
网络编程与进程通信
网络编程
网络应用程序最终要实现网络资源的共享 网络编程首先要解决网间进程通信的问题,然后才
能在通信的基础上开发各种应用功能。
网间进程通信
进程
处于运行过程中的程序实例,是操作系统调度和分 配资源的基本单位。
协议是“水平的”
即协议是控制对等实体之 间通信的规则。
服务是“垂直的”
服务是由下层向上层通过 层间接口提供的。
实体(n + 1)
N+ 1层协议
实体(n + 1)
SAP 实体(n)
第N+1层
N层协议
SAP 实体(n)
第N 层
开放系统互联参考模型
实体分层 数据型态 协议层次
主要功能描述
7.应用层
熟知端口:0—1023,全局分配(静态分配) 自由端口号:1024-65535,本地分配(动态分配)
TCP或UDP端口的分配规则是:
端口0:不使用,或者作为特殊的使用; 端口1-255:保留给特定的服务,TCP和UDP均规定,小于
256的端口号才能分配给网上著名的服务; 端口256-1023:保留给其他的服务,如路由; 端口1024-4999:可以用作任意客户的端口; 端口5000-65535:可以用作用户的服务器端口。
类似于文件描述符,每个端口都拥有一个叫作端口号 (port number)的整数型标识符。
从实现的角度讲,端口是一种抽象的软件机制,包括 一些数据结构和I/O缓冲区。
UDP与TCP的报文格式
端口号的分配机制
对于TCP,或者UDP,将它们的全部65535个端口号分 为保留端口号和自由端口号两部分。
远地机IP地址,远地机传输层端口)
网络通信方式
两类通信方式
面向无连接的通信和面向连接的通信
面向无连接的通信
无连接服务是邮政系统服务的抽象,每个分组都携 带完整的目的地址,各分组在系统中独立传送。
传输层的用户数据报协议(UDP)是一种尽力传送 的无连接的不保障可靠的传输服务
是一种保护消息边界的数据报传输。
保护消息边界的数据报传输
面向连接的通信
面向连接的通信
面向连接服务是电话系统服务模式的抽象,即每一次 完整的数据传输都要经过建立连接,使用连接,终止 连接的过程。
传输控制协议 (TCP)应用层进程提供一个面向连接的、 端到端的、完全可靠的全双工的流传输服务。
无消息边界的流传输服务
阻塞通信与非阻塞通信
阻塞的概念
阻塞是指一个进程执行了一个函数或者系统调用, 该函数由于某种原因不能立即完成,因而不能返回 调用它的进程,导致进程受控于这个函数而处于等 待的状态,进程的这种状态称为阻塞。
应用层的源进程将报文发送给运输层的某个服务访问 点,而应用层的目的进程从这个访问点接收报文。
Internet中网间进程的标识
端口( port )
端口是TCP/IP协议族中,应用层进程与传输层协议实 体间的通信接口
TCP/IP协议提出了传输层协议端口的概念,成功地解 决了通信进程的标识问题。
使用端口的通信示例
使用端口的通信示例
如何实现服务器同时为多个客户机服务?
服务器
客户端进程
客户端1
ห้องสมุดไป่ตู้
服务器进程
线程1
客户端1 线程
创建
会话
会话 TCP/IP
线程2 …...
监
听
线 程
创 建
客户端2 线程
会话
…... 创建
客户端N
线程
会话
TCP/IP TCP/IP
会话 客户端2
…...
会话 客户端 N
数据结构
第1章 网络编程基础
杨明 紫金学院计算机系
2020/8/18
教学内容和安排
内容
章
网络编程基础
1
套接字网络接口基础
2
Windows环境的网络编程 3
MFC WinSock类的编程
5
WinInet编程
6
WinSock的多线程编程
5
机动
学时 4 4 6 8 4 4 2
内容
网络编程相关的基本概念 网络通信方式 套接字编程模型
TCP/IP协议族
Everything Over IP IP over everything
应用层 运输层 网际层
HTTP … SMTP DNS … RTP
TCP
UDP
IP
网络接口层
网络接口 1 网络接口 2 … 网络接口 3
Internet中网间进程的标识
传输层
是计算机网络中通信主机内部进行独立操作的第一层, 是支持端到端的进程通信的关键一层。
网络编程说明
Web开发
基于WWW的网络应用编程技术,包括网页制作工具, 动态服务器页面制作技术。
相对高端、网站类应用 开发支撑平台是Web服务器,如ASP、JSP和PHP等。
网络编程
基于TCP/IP协议栈,主要是使用各种编程语言,利用操 作系统提供的套接字网络编程接口,直接开发各种网络 应用。
应用程序进程顶层设计
Data 主机层
6.表示层 5.会话层
数据格式变换,加密解密等 主机内部模块间通信
Segment 4.传输层
端对端连接,流量控制等
网络互联 设备媒体 层
Packet Frame Bit
3.网络层
逻辑寻址等
2.数据链路层 介质访问控制、物理寻址等
1.物理层
信号传输
TCP/IP协议栈模型
网间进程通信是指网络中不同主机中的应用进 程之间的相互通信问题
网间进程通信必须解决以下问题
网间进程的标识问题 如何与网络协议栈连接的问题 多重协议的识别问题 不同的通信服务的问题
计算机网络的分层模型
协议
控制两个对等实体进行通 信而建立的规则、标准或 约定
服务
每层为相邻上一层提供的 功能。
Internet中网间进程的标识
进程的网络地址
在因特网络中,用一个三元组可以在全局中唯一地标识一个 应用层进程
进程网络地址=(传输层协议,主机的IP地址,传输层的端 口号)
网络中进程的通信标识
一个完整的网间通信需要两个进程组成,构成通信的两端 五元组:(传输层协议,本地机IP地址,本地机传输层端口,