TCP客户/服务器模型

CS模型:Client /Service模型

这里写图片描述

过程描述:
类比打电话。
对于服务器,首先创建套接字,socket;之后绑定一个端口,bind;进入监听状态,listen;等到对方打电话,accept;之后一直阻塞等到客户端连接过来。
对于客户端,首先要创建套接字,之后尝试打电话,即connect,一旦拨打通了,即连接上了,开始TCP的三次握手。(详细见下面分析)

建立连接后,客户端,和服务器听过write和read进行数据请求,和数据应答。都是write发,read收。

客户端想关闭,close,然后服务器,read后,也close。

TCP三次握手

回射客户/服务器

这里写图片描述

重要函数

socket:创建套接字,用于通信。
这里写图片描述

bind
这里写图片描述

注意这里的输入参数,通用地址结构。
listen:调用socket和bind函数之后,调用accept之前调用。
这里写图片描述

listen:是将套接字从主动套接字转化为被动套接字
主动套接字:发起连接 connect
被动套接字:接收连接 accept

对于给定的监听套接字,内核要维护两个队列:
1。 已有客户发出并到达服务器,服务器正在等待完成相应的TCP三路握手过程。

2。 已完成连接的队列。

accept
这里写图片描述

connect

服务器端:

//if ((conn=accept(listenfd, (struct sockaddr*)&peeraddr, &peerlen)) < 0)//服务端:等待客户端接入.conn对应的是客户端发出来的套接字
    //{
   
    //  ERR_EXIT("accept");
    
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TCP/IP模型是一种网络协议模型,它将网络通信分解为不同的层次,这些层次分别负责不同的功能和任务。TCP/IP模型由四个层次组成,分别是网络接口层、网络层、传输层和应用层。 网络接口层是最底层,它负责将逻辑数据转化为物理信号以进行网络传输。在这一层次上,数据通过网卡接口被封装成帧,然后通过物理介质进行传输。 网络层是位于网络接口层上面的一层,它负责将数据分组进行路由和传输。在这一层次上,数据被封装成包,并赋予IP地址,通过路由器进行转发,实现网络间的通信。 传输层是位于网络层之上的一层,它提供可靠的端到端传输。在这一层次上,数据被封装成段,通过端口和IP地址来识别不同的应用程序和主机,使用TCP协议(传输控制协议)实现可靠传输,或使用UDP协议(用户数据报协议)实现不可靠但效率高的传输。 应用层是位于传输层之上的一层,它是网络通信的最高层,负责处理特定的网络应用。在这一层次上,数据被封装成报文,根据具体的应用需求使用不同的协议,例如HTTP协议用于Web浏览器和服务器之间的通信,SMTP协议用于电子邮件的传输。 总结来说,TCP/IP模型是一种层次化的网络通信协议模型,它将网络通信的功能划分为不同的层次,从物理层到应用层,每一层都负责不同的任务,协同工作来实现网络通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值