当前位置: 首页 > wzjs >正文

西双版纳傣族自治州天气seo教学培训

西双版纳傣族自治州天气,seo教学培训,五莲网站制作,cbd网站建设1. TCP TCP: 传输控制协议(Transmission Control Protocol),传输层协议之一(TCP,UDP) 2. TCP与UDP UDP(用户数据报协议) 面向数据报无连接不安全不可靠(尽最大努力交…

1. TCP

TCP: 传输控制协议(Transmission Control Protocol),传输层协议之一(TCP,UDP)

2. TCP与UDP

UDP(用户数据报协议)

  • 面向数据报
  • 无连接
  • 不安全不可靠(尽最大努力交付)
  • 机制简单,传输效率高

TCP(传输控制协议)

  1. 需要建立连接
  2. 安全、可靠
  3. 面向字节流
  4. 占用资源开销大 

3. 三次握手

        指建立tcp连接时,需要客户端和服务端总共发送三次报文确认连接

4. 四次挥手

        断开一个tcp连接,需要客户端和服务端发送四个报文以确认断开 

TCP编程:基于C/S模型的socket文件进行通信

5. TCP框架设计

  • client: socket--->connect--->send/write--->close
  • server:    socket--->bind--->listen--->accept---> recv/read--->close

6. 函数接口

6.1 socket

        socket(AF_INET, SOCK_STREAM, 0);

6.2 connect

        int connect(int sockfd, const struct sockaddr *addr,
                   socklen_t addrlen);
功能:
        发送三次握手链接请求
参数:
        sockfd:套接字文件描述符
        addr:存放目的地址空间首地址
        addrlen:目的地址长度
返回值:
        成功返回0 
        失败返回-1   

6.3 send

        ssize_t send(int sockfd, const void *buf, size_t len, int flags);
功能:
        发送数据
参数:
        sockfd:套接字文件描述符
        buf:存放数据空间首地址
        len:数据长度
        flag:属性默认为0 
返回值:
        成功返回发送字节数
        失败返回-1   

6.4 recv

        ssize_t recv(int sockfd, void *buf, size_t len, int flags);
功能:
        接收数据 
参数:
        sockfd:套接字文件描述符
        buf:存放数据空间首地址 
        len:最多接收数据长度 
        flags:接收属性默认为0 
返回值:
        成功返回实际接收字节数
        失败返回-1 
        连接断开返回0 

6.5 bind

        int bind(int sockfd, const struct sockaddr *addr,
                socklen_t addrlen);

6.6 listen

        int listen(int sockfd, int backlog);
      功能:
        监听三次握手链接请求
      参数:
        sockfd:套接字文件描述符
        backlog:最多允许等待尚未处理的三次握手链接个数
      返回值:
        成功返回0 
        失败返回-1 

6.7 accept

        int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
功能:
        处理三次握手等待队列中的第一个请求并建立一个用来通信的新套接字
参数:
        sockfd:套接字文件描述符
        addr:存放发送端IP地址空间首地址 
        addrlen:想要接收的IP地址的长度 
返回值:
        成功返回新文件描述符
        失败返回-1 

7. TCP粘包

TCP协议是面向字节流的协议,接收方不知道消息的界限,不知道一次提取多少数据,这就造成了粘包问题

产生原因

  • TCP发送数据时,没有及时发走,会根据缓冲区数据的情况进行重新组包
  • TCP接收方,没有及时读走缓冲区数据,导致缓冲区大量数据缓存

解决方案

  • 消息定长法:对于定长的包,保证每次都按固定大小读取即可        //  结构体
  • 添加消息头:在每个数据包前添加固定长度的消息头,消息头中记录数据包的长度等信息。发送方发送数据时,先发送消息头,再发送实际数据。接收方先读取消息头,获取数据包长度信息,再根据该长度读取后续的实际数据
  • 特殊字符分隔法:在数据包之间添加特殊的分隔字符(‘\n’),发送方发送数据时,在每个数据包后加上分隔字符,接收方按分隔字符来分割数据包

8. TCP报文头

标志位:

  • URG: 紧急指针标志, 为1时表示紧急指针有效, 该报文应该优先传送。
  • ACK: 确认应答标志
  • PSH:  表示发送数据,提示接收端从TCP接收缓冲区中读走数据,为接收后续数据腾出空间
  • RST: 重置连接标志
  • SYN: 表示请求建立一个连接
  • FIN: finish标志, 表示释放连接

滑动窗口大小:是TCP流量控制得一个手段。目的是告诉对方,本端的TCP接受缓冲区还能容纳多少字节得数据,这样对方就可以控制发送数据的速度,从而达到流量控制,16bit,因而窗口最大65535

9. TCP机制

保证可靠性的同时又要尽可能的提高性能

可靠性:

  • 三次握手和四次挥手机制
  • 应答机制:TCP将每个字节的数据都进行了编号,即为序列号。每一个ACK都带有对应的确认序列号,保证数据不丢失的按序到达
  • 超时重传:当发送端发送的数据在网络中丢失时,在一定时间内没有收到接收端的ACK,则发送端会重新发送丢失数据。
  • 流量控制:按照ACK中“窗口大小”字段控制发送端的发送速度

提高性能:

  • 滑动窗口:可以按照“窗口大小”, 一次发送多条后, 再等待应答
  • 延迟应答:当接收方处理速度很快时,可以延迟发送ACK,此时"窗口大小"会自动增大
  • 捎带应答:搭载应用层的响应报文发送ACK
http://www.dtcms.com/wzjs/22525.html

相关文章:

  • 物流企业网站建设规划书深圳网站建设哪家好
  • 做美食推广的网站有哪些营销软文怎么写
  • 成都网站制作公司微博推广费用一般多少
  • 母婴用品网站建设什么是seo优化
  • 枫泾网站建设最新热搜新闻
  • 长沙那个手机建网站公司好天气预报最新天气预报
  • 临海市住房和城乡建设规划局网站seo公司优化排名
  • 长春推广公司下列关于seo优化说法不正确的是
  • 小程序开发平台哪家产品较好seo网络推广是干嘛的
  • 网页制作的意义seo的含义
  • 代做计算机毕业设计网站太原seo外包服务
  • 做旅游攻略的网站青岛网站建设技术外包
  • 怎么做网站上做电子书今日最新重大新闻
  • 衡水网站建设网络公司网站制作和推广
  • 免费申请版权seo+网站排名
  • wordpress前台发表文章石家庄全网seo
  • 外贸网站做流量武汉网络推广公司排名
  • 规划设计网站推荐蜜雪冰城网络营销案例分析
  • 中信建设有限责任公司云南分公司电话南京 seo 价格
  • 深喘旋磨做紧夹断妖精网站网络推广怎么做好
  • 做名片用哪个网站百度爱采购推广怎么收费
  • 怎么做阿里巴巴官网站58同城关键词怎么优化
  • 网站建设方案 云盘sem是什么意思职业
  • 网站改版不换域名怎么做查权重工具
  • 安徽省教育局网站建设方案seo自动优化工具
  • web网站建设培训班企业培训体系
  • 网站图片移动怎么做seo标题优化的方法
  • 网站设置页面指什么谷歌推广技巧
  • wordpress公共函数在哪企业关键词优化公司
  • 松山湖网站建设如何推广软件