网络学习
文章平均质量分 82
曾柯
keep learning
展开
-
结合socket详解TCP三次握手四次挥手
结合socket详解TCP三次握手四次挥手 TCP协议中的三次握手和四次挥手大家应该都至少听说过了,本人一直觉得理论学习要结合代码才能学习的更深刻,当知道东西是这样,然后再知道为什么是这样的时候,领悟往往更加深刻,今天本人就结合socket编程中的API来解析一下TCP协议的三次握手和四次挥手过程。 那么TCP协议中的三次握手和四次挥手实际在网络编程中是怎么对应的呢?先贴一个简单的...原创 2018-01-06 19:45:18 · 942 阅读 · 0 评论 -
centos7.0修改内核中tcp拥塞控制算法的方法
目前tcp拥塞控制算法已有很多种,典型的如tcp_reno,tcp_vegas,tcp_cubic等,很多拥塞控制算法是针对都是相应网络情况的优化,比如tcp_bic和tcp_cubic就很适合长距离且高速低丢包的网络情况,我们可以针对我们自己的网络需求开启相应的拥塞控制算法,下面介绍在centos中修改tcp拥塞控制算法的方法(具体拥塞控制算法的针对场景以及支持的内核版本请自行查阅) ...原创 2019-06-08 21:45:45 · 5843 阅读 · 0 评论 -
由浅入深网络协议——从一个文件的传输流程来看TCP的流量控制和拥塞控制
不知道你有没有这样的疑惑,在你下载一个文件的过程中,为什么开始的传输速率慢,后面越来越快,最后又稳定在一个固定的值,中间的原理是什么呢?本文将会从原理上讲述一下典型的TCP流量控制和拥塞控制算法,虽然TCP的流量控制和拥塞控制已经是一个老生常谈的问题了,但现在很多网上给出的相关说明都是基于很老的TCP版本或者资料来进行的说明,在实际应用中会给人很多的疑惑。因此,本文会以一个文件传输的实例,...原创 2019-05-30 12:30:32 · 1314 阅读 · 0 评论 -
聊一聊服务器和客户端会话过程中的端口
之前在TCP/IP的网络通信的学习中,主要关注的都是高并发,高性能的方面,忽略了一些基本的概念,特别是端口这个东西,这个东西在服务器开发过程中可能看起来也不是很麻烦,在服务器上就是一个bind(),在客户端指定一下目标端口就行了,也没有太深入理解其中的东西,今天就来好好的总结梳理一下。还是以服务器和客户端的会话为例,什么是端口呢?如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只...原创 2018-03-27 19:46:21 · 6498 阅读 · 1 评论 -
自旋锁和互斥锁的区别
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机制:(1...转载 2018-03-06 13:38:38 · 491 阅读 · 0 评论 -
GET和POST区别详解
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET...转载 2018-03-02 16:26:08 · 3748 阅读 · 1 评论 -
HTTP简介
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,...转载 2018-03-02 16:25:12 · 218 阅读 · 0 评论 -
【Web基础】HTTP长连接和短连接以及推送技术原理
HTTP长连接和短连接以及推送服务原理HTTP长连接和短连接11. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连...转载 2018-03-01 21:10:38 · 615 阅读 · 0 评论 -
深入了解几种IO模型(阻塞非阻塞,同步异步)
一般来说,Linux下系统IO主要就是通过以下几个函数open(),close(),read(),write(),send(),recv(),lseek(),今天就以recv()为例来介绍下IO模型中的同步异步,阻塞非阻塞的区别。先说阻塞与非阻塞的区别,recv()函数默认是阻塞的,什么是阻塞呢?就是当你调用recv()函数时,整个进程或者线程就等待在这里了,直到你recv的fd的所有信息都被se...原创 2018-02-28 15:51:29 · 25642 阅读 · 9 评论 -
当你输入一个网址的时候,实际会发生什么?
原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首...转载 2018-02-26 15:58:32 · 331 阅读 · 0 评论 -
深入理解TCP拥塞控制——从BIC到CUBIC
引言 网上的各种博文一提到tcp的拥塞控制,都是清一水的慢启动,拥塞避免,快速重传,呃...虽然没什么问题,但是这都9012年了,tcp的拥塞控制算法已经演变了很多了,在linux内核2.6.8中,就默认采用BIC拥塞控制算法了,在2.6.18中,默认的拥塞控制算法采用了CUBIC,网上各种讲CUBIC的不算太多,个人觉得这篇博文讲的还不错,但该文偏向于从宏观和趋势的角度去理解CU...原创 2019-06-10 17:25:27 · 9727 阅读 · 2 评论