第6讲CH5传输层与TCPIP网络编程(免费阅读).pptVIP

  • 3
  • 0
  • 约1.41万字
  • 约 73页
  • 2017-01-01 发布于重庆
  • 举报

第6讲CH5传输层与TCPIP网络编程(免费阅读).ppt

第三章 面向连接的网络通信实现 1. 万维网通信的特点 2. 传输层协议概述 3. 传输控制协议TCP 4. TCP传输协议报文头格式 5. TCP/IP通信的实现 6. TCP/IP 网络编程举例 §3.1 万维网通信的特点 网络分层通信 WWW协议服务提供的特点 网络协议分层的基本功能 分层通信的信息流示意 WWW 协议所提供的服务特点 万维网以客户服务器方式工作 需要提供可靠交付 Client与Server之间进行一对一的通信 信息双向传输 面向字节流(ASCII字符) §3.2 传输层协议概述 进程之间的通信 传输层的两个主要协议 传输层的端口 §3.3 传输控制协议TCP 1. TCP协议特点 2. TCP的连接 3. TCP传输连接管理 §3.4 TCP传输协议报文头格式 §3.5 TCP/IP通信的实现 1.系统调用机制 2. 套接字Socket的作用 3. 套接字连接的建立 socket有多种不同意思 应用编程接口 API 称为 socket API, 简称为 socket。 socket API 中使用的一个函数名也叫作socket。 调用 socket 函数的端点称为 socket。 调用 socke t函数时其返回值称为 socket描述符,可简称为 socket。 在操作系统内核中连网协议的 Berkeley 实现,称为 socket 实现。 伯克利套接字(Berkeley Socket) TCP套接字传输原语 §3.6 TCP/IP 网络编程举例 1. 万维网通信的特点 2. 传输层协议概述 3. 传输控制协议TCP 4. TCP传输协议报文头格式 5. TCP/IP通信的实现 6. TCP/IP 网络编程举例 套接字地址结构 IP 地址和如何处理它们 假设你已经有了一个sockaddr_in结构体ina,你有一个IP地 址0要储存在其中,你就要用到函数inet_addr(),将IP地址从 点数格式转换成无符号长整型。使用方法如下: ina.sin_addr.s_addr = inet_addr(0); 注意,inet_addr()返回的地址已经是网络字节格式, socket()函数 调用格式 int socket(int domain, int type, int protocol); 参数含义: domain:设置成 “AF_INET”,象 sockaddr_in结构; type:是 SOCK_STREAM 是 SOCK_DGRAM类型。 Protocol:设置为 “0”。 返回 返回在系统调用中要用到的 socket 描述符,或在错误的时候返回-1。 bind()函数 将套接字和机器上的一定的端口关联起来。 调用方法: #include sys/types.h #include sys/socket.h int bind(int sockfd, struct sockaddr *my_addr, int addrlen); 参数 Sockfd:调用 socket 返回的文件描述符 ; my_addr:数据结构 struct sockaddr指针,保存本机地址(即端口和 IP 地址) 信息; Addrlen:设置为 sizeof(struct sockaddr)。 返回 绑定成功与否标致。 connect()程序-如何连接到远程主机 系统调用 int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); 参数 sockfd 是系统调用 socket() 返回的套接字文件描述符; serv_addr 是 保存着目的地端口和 IP 地址的数据结构 struct sockaddr ; addrlen 设置 为 sizeof(struct sockaddr) 。 使用方法 * * * * * * * * * * * * * * 3. 套接字连接的建立- 客户端 创建一个套接字 用socket原语创建一个套接字描述字结构。当套接字被创建后,它的端口号和 IP 地址都是空的。 客户端开始连接请求 利用connect原语,向服务器发出TCP连接请求,采用三次握手协议。 客户端进入数据接收/发送模式 当收到应答后,TCP连接成功建立,即可采用send和recv原语进行数据收发。 3. 套接字连接的建立-服务器端 把本地地址绑定到套接字 当套接字被创建后,它的端口号和 IP 地址都是空的,因此应用进程要调用 bind(绑定)来指明套接字的本地地址。在服务器端调用 bind 时就是把熟知端口号和本地IP地址填写到已创建的套接字中。 服务器进入被动监听方式 在调用 bind 后,还必须调

文档评论(0)

1亿VIP精品文档

相关文档