计算机网络-TCP篇】的更多相关文章

TCP篇 之前的总结文章:TCP简单版本介绍-三次握手等 基本认识 TCP 是⾯向连接的(⼀定是「⼀对⼀」才能连接).可靠的.基于字节流的传输层通信协议. RFC 793 是如何定义「连接」的:⽤于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括Socket.序列号和窗⼝⼤⼩称为连接. 建⽴⼀个 TCP 连接是需要客户端与服务器端达成上述三个信息的共识. Socket:由 IP 地址和端⼝号组成 序列号:⽤来解决乱序问题等 窗⼝⼤⼩:⽤来做流量控制 TCP 四元组可以唯⼀的确定⼀个连…
目录 计算机网络-HTTP篇 HTTP的一些问题 HTTP 基本概念 常见状态码 常见字段 Get 与 Post HTTP 特性 HTTP(1.1) HTTP/1.1 HTTPS 与 HTTP HTTP/1.1.HTTP/2.HTTP/3 参考:图解网络 计算机网络-HTTP篇 HTTP的一些问题 HTTP 基本概念 HTTP 是超⽂本传输协议,也就是HyperText Transfer Protocol. HTTP 是⼀个在计算机世界⾥专⻔在「两点」之间「传输」⽂字.图⽚.⾳频.视频等「超⽂本…
满山的红叶--飘落之时-- 最近接触了点关于用C++写socket的东西,这里总结下. 这里主要是关于TCP的,TCP的特点什么的相关介绍在我另一篇博文里,所以这里直接动手吧. 我们先在windows下写,不过代码可以直接移植到linux下. Visual Studio项目配置及初始化 这里用的版本是2015的.创建了项目之后要配置项目的属性: 在下图箭头处添加ws2_32.lib,不然没办法使用socket相关的函数. 然后在win平台下,使用这个库前需要初始化,因此在main函数中应有: W…
计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来, 在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换.   TCP/IP协议栈   应用层 传输层 网络层 网络接口层   大多数应用程序员仅仅涉及应用层和传输层   网络通信三要素   IP地址:InetAddress         网络中设备的标识,不易记忆,可用主机名 要想让网络中…
终于有时间写这篇文章了,最近真的比较忙! TCP协议  之 “三次握手” 引言:我们知道,TCP是面向连接的协议(相较于UDP无连接的协议),会在传送数据之前先在 发送端 & 接收端 之间建立一条连接,所以实现了可靠传输.而运输链接是用来传送TCP报文的.TCP运输连接的建立,是面向连接的通信协议传送数据之前必需的一个步骤. 一次传输涉及到三个步骤: 建立连接(本篇所涉及) 传送数据 释放连接 在建立连接时,有趣的“三次握手”就粉墨登场了. 所谓三次握手,其实是发送端&接收端在传送数据之前…
引言 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载.拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制. TCP拥塞控制算法 该算法包括三个主要部分:(1)加性增.乘性减 (2)慢启动 (3)对超时事件做出反应 1.加性增.乘性减 加性增: 如没有检测到丢包事件,每个RT…
在近期学习计算机网络的过程中,由于知识点过于零散,琐碎,从而学习起来痛苦不堪,此贴只是总结了基于传输层的TCP协议相关的知识细节,并加入一点自己的理解,并无创新,若有理解不当之处,敬请提出,感谢! 首先过一下流水账,在计算机网络中,对于网络传输有七层模型,或者TCP/IP四层模型等等,那么先基于TCP/IP四层模型而言: 1.数据链路层:对0和1进行分组,定义了数据帧,确认主机物理地址,并且传输数据 2.网络层:定义IP地址,确认网络位置,通过IP给MAC寻址,对外网数据包进行路由转发 3.传输…
TCP首部20个字节 1.为什么TCP要三次握手建立连接? TCP连接过程,客户端发送请求到服务器,服务器确认请求发送到客户端,客户端再发送确认请求到服务器 原因:简言之,为了防止失效的连接请求发送到服务端,造成服务端以为建立了连接一直等到客户端的数据,知道超出了保活计数器的设定值,才意识到客户端出了问题,才会关闭这个连接, 如果有三次握手就不会建立连接. 网上解释的详细原因: “ 前两次的握手很显然是必须的,主要是最后一次,即客户端收到服务端发来的确认后为什么还要想服务端再发送一次确认呢?这主…
1. Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP. (2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访问的端口号. (3)连接:指两个进程间的通讯链路. (4)半相关:网络中用一个三元组可以…
三次握手:建立TCP连接 连接建立过程: B的TCP服务器进程先创建传输控制块TCB(存储了每一个连接中的一些重要信息,如:TCP连接表,到发送和接收缓存的指针,到重传队列的指针,当前的发送和接收序号,等),准备接受客户进程的连接请求.然后服务器进程就处于LISTEN(收听)状态,等待客户的连接请求.如有,即作出相应. A的TCP客户进程也是首先创建传输控制模块TCB,然后向B发出连接请求报文段,这时首部中的同步为SYN=1,同时选择一个初始序号seq=x.TCP规定,SYN报文段(即SYN=1…