day01
网络程序设计
网络程序设计
1.定义:
基于套接字编程或客户服务端编程,程序在计算机网络内与其他程序进行通信
2.
网络程序设计=socket编程或客户端/服务器编程
客户端 服务器端
1.定义
客户端:发起连接 请求服务的程序或进程
服务器端:等待连接 提供服务的程序或进程
2.分布式系统
客户端 和 服务器端→分布式系统
3.两种模式
面向连接(TCP):
传输数据前 建立一个物理或逻辑的数据通道
特点:可靠 稳定 占用资源较多
无连接(UDP,IP):
每个数据包附带足够的目的地信息,独立传输
特点:不可靠 性能较高
协议
1.IP两大特征
不可靠性 无连接性
2.
ping:ICMP协议
Mac→IP:ARP(地址解析协议)
DNS:域名→IP地址
字节序:端模式:大端字节序 和 小端字节序
网络模型
OSI七层开放模型:
应用 表示 会话 传输 网络 链路 物理
TCP/IP五层模型:
(TCP/IP=OSI)
应用=应用+表示+会话
传输=传输
网络=网络
链路=链路
物理=物理
TCP/IP四层模型:
链路+物理=网络接口层
Socket
1.定义
因特网上 程序间 进行 数据传输的一个端点
应用程序间进行数据传输 通过 socket进行
2.常用系统的socket
Unix/Linux:Berkeley socket
Windows:winsock
其他网络编程接口:
AT&T的TLI(传输层接口),针对OSI七层模型
3.Socket地址
socket地址=IP地址+端口号
Socket构成将数据包传输给对应的线程/进程的机制
该传输根据Socket地址进行
4.标识Socket连接
五元组 < sIP, sPort, dIP, dPort, 协议>(分别是 源IP, 源端口号, 远程/目的IP,目的端口号, 协议类型)
四元组 < sIP, sPort, dIP, dPort>此时已知协议类型,如:TCP的Socket连接
5.socket连接列表
netstat -an
6.Socket类型
流式套接字: TCP, 面向连接
数据报套接字: UDP,无连接
原始套接字: IP, 无连接