zoukankan      html  css  js  c++  java
  • 网络基础

    1.TCP和UDP

    区别

    TCP:1、有链接,可靠,2、有三次握手协议,端开链接有4次握手,有重传机制。3、TCP利用seq序列号对包排序。
    4、面向字节流,虽然应用程序和TCP的交互是一次一个大小不等的数据块,但TCP把应用程序看成是一连串的无结构字节流。TCP有一个缓冲,当应用程序传送的数据块太长,会划分短,如果发送的太短,会积累足够的字节流构成报文发送出去。
    5、TCP有流量控制,头部是20bytes。
    UDP:1、是无连接的,不可靠,2、也没有重传机制。3、对于有序性上,udp没有。4、面向报文的传输方式,应用层交给UDP多长的报文,UDP就照样发送,一次发送一个报文。应用程序必须选择合适大小的报文。如果太长,IP层需要分片,UDP对于应用层交给的报文不合并也不拆分,保留边界。照样发送。5、UDP没有流量控制,头部8bytes。

    应用场景

    TCP:效率要求不高,但准确性高得场合。传输中可以对数据进行确认,重发,排序等操作。(比如邮件、文件传输)
    UDP:效率要求高,但是准确性相对一般得场景。比如QQ聊天、在线视频、直播。

    2.TCP三次握手


    几个关键点:
    (第一次握手)
    PS1:SYN=1,ACK=0表示该报文段为连接请求报文。
    PS2:x为本次TCP通信的字节流的初始序号。 TCP规定:SYN=1的报文段不能有数据部分,但要消耗掉一个序号。
    (第二次握手)
    PS1:SYN=1,ACK=1表示该报文段为连接同意的应答报文。 PS2:seq=y表示服务端作为发送者时,发送字节流的初始序号。 PS3:ack=x+1表示服务端希望下一个数据报发送序号从x+1开始的字节。
    (第三次握手)
    当客户端收到连接同意的应答后,还要向服务端发送一个确认报文段,表示:服务端发来的连接同意应答已经成功收到。 该报文段的头部为:ACK=1,seq=x+1,ack=y+1。 客户端发完这个报文段后便进入ESTABLISHED状态,服务端收到这个应答后也进入ESTABLISHED状态,此时连接的建立完成!

    3.TCP四次挥手

    4.TCP流量控制/拥塞控制

  • 相关阅读:
    c:forTokens标签循环输出
    jsp转long类型为date,并且格式化
    spring中@Param和mybatis中@Param使用区别(暂时还没接触)
    734. Sentence Similarity 有字典数组的相似句子
    246. Strobogrammatic Number 上下对称的数字
    720. Longest Word in Dictionary 能连续拼接出来的最长单词
    599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
    594. Longest Harmonious Subsequence强制差距为1的最长连续
    645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
    409. Longest Palindrome 最长对称串
  • 原文地址:https://www.cnblogs.com/EvansPudding/p/12702424.html
Copyright © 2011-2022 走看看