
Linux网络编程
文章平均质量分 90
shankusu2017
go lua c 服务器开发 shankusu2017.github.io
展开
-
TCP粘包,UDP不存在粘包问题
以下内容参考http://www.cnblogs.com/lancidie/archive/2013/10/28/3392428.htmlhttps://blog.youkuaiyun.com/hik_zxw/article/details/48398935https://blog.youkuaiyun.com/varyall/article/details/80920721有关TCP和UDP 粘包 消息保护边界在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。TCP的socket编程,..原创 2021-03-22 11:56:18 · 513 阅读 · 0 评论 -
TCP建立连接三次握手和释放连接四次握手
以下内容转载自http://blog.youkuaiyun.com/guyuealian/article/details/52535294在谈及TCP建立连接和释放连接过程,先来简单认识一下TCP报文段首部格式的的几个名词(这里只是简单说明,具体请查看相关教程) 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。...转载 2021-03-22 11:54:43 · 215 阅读 · 0 评论 -
【TCP/IP详解 卷一:协议】TCP的小结
以下内容转载自https://www.cnblogs.com/qq952693358/p/5796520.html前言:TCP学习的综述在学习TCP/IP协议的大头:TCP协议 的过程中,遇到了很多机制和知识点,详解中更是用了足足8章的内容介绍它。TCP协议作为 应用层 和 网络层 中间的 传输层协议,既要为下面的网络层协议保证连接的可靠性(IP协议)弥补不足,又要作为 应用层进程向网络层发送数据的中转站(作为多路复用/解复用器)。这就使得我们在审视TCP这个协议的过程中,需要横向和纵.转载 2021-03-22 11:50:55 · 164 阅读 · 0 评论 -
网络 IO 演变发展过程和模型介绍
以下内容转载自https://www.toutiao.com/i6934649078554853902/原创腾讯技术工程2021-03-04 18:00:00作者:jaydenwen,腾讯 pcg 后台开发工程师在互联网中提起网络,我们都会避免不了讨论高并发、百万连接。而此处的百万连接的实现,脱离不了网络 IO 的选择,因此本文作为一篇个人学习的笔记,特此进行记录一下整个网络 IO 的发展演变过程。以及目前广泛使用的网络模型。1.网络 IO 的发展在本节内容中,我们将一步一步介绍网络 .转载 2021-03-04 21:25:03 · 404 阅读 · 1 评论 -
TCP协议灵魂 12 问,总会用得到
以下内容转载自https://mp.weixin.qq.com/s/rRPvGlc0KgLECFNk_JmIxw先亮出这篇文章的思维导图TCP 作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。001. 能不能说一说 TCP 和 UDP 的区别?首先概括一下基本的区别:TCP是一个面向连接的、可靠的、基于字节流的传输层协议。而UDP是一个面向无连接的传输层协议。...转载 2021-03-04 15:42:31 · 173 阅读 · 1 评论 -
Reactor模型 介绍
以下内容转载自https://www.toutiao.com/i6808729994718609934/要无障碍阅读本文,需要对NIO有一个大概的了解,起码要可以写一个NIO的Hello World。说到NIO、Netty,Reactor模型一定是绕不开的,因为这种模式架构太经典了,但是好多人在学习的时候,往往会忽视基础的学习,一上来就是Netty,各种高大上,但是却没有静下心来好好看看Netty的基石——Reactor模型。本文就带着大家看看Reactor模型,让大家对Reactor模型有个浅显.转载 2021-02-17 20:57:38 · 627 阅读 · 0 评论 -
深度理解select、poll和epoll,IO多路复用模型实现机制
以下内容转载自https://www.toutiao.com/i6588439740461089287/在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。select()和poll() IO多路复用模型select的缺点:单个进程能够监视的文件描述符的数量存在最大限制,通常是1024,当然可以更改.转载 2021-02-16 00:16:00 · 273 阅读 · 0 评论 -
IO模式和IO多路复用(阻塞IO、非阻塞IO、同步IO、异步IO等概念)
以下内容转载自https://www.toutiao.com/i6586081000172814856/网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,总听别人装13不如自己下来钻研一下。不过,搞清楚这些概念之前,还得先回顾一些基础的概念。回到顶部1 基础知识回顾注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~1.1 用户空间和内核空间现在操作系统都采用虚拟寻址,处理器先产生一个虚拟地址,通过地址翻译成物理地址(内存的地址),再通过总线的传递,.转载 2021-02-16 00:14:15 · 413 阅读 · 0 评论 -
TCP 状态变换时序图
以下内容转载自https://www.toutiao.com/i6674070500307632653/考试紧张2019-03-30 14:42:10TCP共有11个网路状态,其中涉及到关闭的状态有5个。在我们编写网络相关程序的时候,这5个状态经常出现。因为这5个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情况,为我们诊断网络中各种问题,快速定位故障有着非常重要的作用和意义。下是是根据W.Richard Ste.转载 2021-02-07 12:57:22 · 314 阅读 · 0 评论 -
TCP连接的建立与终止
以下内容转载自http://docs.52im.net/extend/docs/book/tcpip/vol1/18/18.1 引言TCP是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本章将详细讨论一个TCP连接是如何建立的以及通信结束后是如何终止的。这种两端间连接的建立与无连接协议如UDP不同。我们在第11章看到一端使用UDP向另一端发送数据报时,无需任何预先的握手。18.2 连接的建立与终止为了了解一个TCP连接在建立及终止时发生了什么,我们.转载 2021-02-07 12:56:13 · 898 阅读 · 0 评论 -
TCP keepalive time_wait
以下内容转载自https://www.toutiao.com/i6813908431703900683/IT知识课堂2020-04-10 16:20:00TCP是一个有状态通讯协议,所谓的有状态是指通信过程中通信的双方各自维护连接的状态。一、TCP keepalive先简单回顾一下TCP连接建立和断开的整个过程。(这里主要考虑主流程,关于丢包、拥塞、窗口、失败重试等情况后面详细讨论。)首先是客户端发送syn(Synchronize Sequence Numbers:同步序列编号)包给服.转载 2021-02-07 12:52:56 · 1047 阅读 · 0 评论 -
TCP/IP协议栈——IP、TCP、UDP、HTTP协议详解
以下内容转载自https://www.toutiao.com/i6826612564433043971/Hu先生Linux后台开发2020-05-14 16:23:17经过面试的同学经常会遇到这样的问题: 你是如何理解TCP/IP协议的?回答:通讯协议?三次握手 ? 四次挥手? 一脸懵逼!如果你感觉已经被上述情景安排,那么有必要好好看看这篇文章。另外附上一篇tcp/ip面试中的问题视频解答:面试中tcpip,哪些容易被问到的及解答1 、什么是协议协议实际上就是一种约定。好比.转载 2021-02-07 12:51:40 · 854 阅读 · 0 评论 -
嵌入式linux网络编程之——5年程序员给你深度讲解socket套接字
以下内容转载自https://www.toutiao.com/i6827837032622981636/本文主要给大家分享网络七层概念之网络编程socket,前边的章节已经给大家讲述了链路层、物理层、网络层、应用层、传输层等,欢迎学习嵌入式网络编程的朋友关注、转载和发表评论!(绝对的好文,建议先收藏和转载!)本文主要的讲述内容为:1 socket概述2.1Socket 的历史2.2Socket 的功能2.3套接字的三种类型3套接字地址3.1什么是 Socket?3..转载 2021-02-07 12:49:04 · 670 阅读 · 0 评论 -
C++ socket 网络编程 即时通信系统
以下内容转载自https://www.toutiao.com/i6852978925627245060/lee哥的服务器开发2020-07-24 17:38:14一:项目内容本项目使用C++实现一个具备服务器端和客户端即时通信且具有私聊功能的聊天室。目的是学习C++网络开发的基本概念,同时也可以熟悉下Linux下的C++程序编译和简单MakeFile编写分享一个即时通讯的实战项目给大家:即时通讯实战项目需要Linux服务器开发高阶学习资料的朋友可以后台私信【架构】获取包括Lin.转载 2021-02-07 12:47:46 · 1236 阅读 · 0 评论 -
websocket协议规范
以下内容转载自https://www.huaweicloud.com/articles/4157e9b5a58ef15e29d71f76b08e1b92.htmlwebsocket协议规范作者:二郎666时间: 2019-11-02 08:06:49标签:网络通信协议websocketwebsocket协议客户端vbwebsocket教程《websocket协议详解》教程分三篇:什么是websocket websocket协议规范 用vb编写websocket客户端示例(每秒...转载 2021-02-05 11:57:02 · 746 阅读 · 0 评论 -
图解Linux网络包接收过程
以下内容转载自https://www.toutiao.com/i6893331085208322563/因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。还是按照惯例来借用一段最简单的代码开始思考。为了简单起见,我们用.转载 2021-02-04 12:55:39 · 221 阅读 · 0 评论 -
Linux C Socket 编程
以下内容转载自https://www.cnblogs.com/PikapBai/p/13964866.html闪念基因2020-11-20 12:01:20本文作者:她爱喝水本文链接:https://www.cnblogs.com/PikapBai/p/13964866.html1 Socket 是什么Socket(套接字),就是对网络上进程通信的端点的抽象。一个 Socket 就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的位置来讲,...转载 2021-02-04 12:54:38 · 527 阅读 · 0 评论 -
Linux后台服务器必学的网络编程
以下内容转载自https://www.toutiao.com/i6829590167855038989/lee哥的服务器开发2020-05-22 16:57:54如此好文,值得先收藏、转发关注一波。谢谢文末有TCP/IP网络协议栈技术进阶视频讲解。习惯视频的朋友可以一键三连后,跳至文末直接观看网络基础协议的概念什么是协议从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。 假设,A、B双方欲传输文件。规定: 第一次,传输文件名,接收方接收到文件名,应答OK给传.转载 2021-02-03 13:16:11 · 213 阅读 · 0 评论 -
不为人知的UDP:深入地理解UDP协议并用好它
以下内容转载自https://www.toutiao.com/i6779196783173042699/开心玩技术2020-01-08 08:02:00UDP的疑难杂症UDP的传输方式:面向报文面向报文的传输方式决定了 UDP 的数据发送方式是一份一份的,也就是应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文。那么UDP的报文大小由哪些影响因素呢? UDP 数据包的理论长度是多少,合适的 UDP 数据包应该是多少呢?(1) UDP 报文大小的影响因素,主要有以..转载 2021-02-03 13:15:10 · 566 阅读 · 0 评论 -
23 个问题 TCP 疑难杂症全解析
以下内容转载自https://www.toutiao.com/i6869736199699825155/yes的练级攻略2020-09-07 21:25:01每个时代,都不会亏待会学习的人。在进入今天主题之前我先抛几个问题,这篇文章一共提出 23 个问题。TCP 握手一定是三次?TCP 挥手一定是四次?为什么要有快速重传,超时重传不够用?为什么要有 SACK,为什么要有 D-SACK?都知道有滑动窗口,那由于接收方的太忙了滑动窗口降为了 0 怎么办?发送方就永远等着了?S.转载 2021-02-03 13:13:36 · 470 阅读 · 0 评论 -
TCP 拥塞控制详解
以下内容转载自https://www.toutiao.com/i6833287175287603725/作者:engleliu,腾讯 PCG 开发工程师本文主要介绍 TCP 拥塞控制算法,内容多来自网上各个大佬的博客及《TCP/IP 详解》一书,在此基础上进行梳理总结,与大家分享。因水平有限,内容多有不足之处, 敬请谅解。一、TCP 首部格式在了解 TCP 的拥塞控制之前,先来看看 TCP 的首部格式和一些基本概念。TCP 头部标准长度是 20 字节。包含源端口、目的端口、序列号、.转载 2021-02-03 13:12:20 · 2048 阅读 · 0 评论 -
万字详文彻底弄懂TCP协议:从三次握手和四次挥手说起
以下内容转载自https://www.toutiao.com/i6867063245144850955/作者:morganhuang,腾讯 IEG 后台开发工程师说到 TCP 协议,相信大家都比较熟悉了,对于 TCP 协议总能说个一二三来,但是 TCP 协议又是一个非常复杂的协议,其中有不少细节点让人头疼点。本文就是来说说这些头疼点的,浅谈一些 TCP 的疑难杂症。那么从哪说起呢?当然是从三次握手和四次挥手说起啦,可能大家都知道 TCP 是三次交互完成连接的建立,四次交互来断开一个连接,那为什么.转载 2021-02-03 13:10:46 · 282 阅读 · 0 评论 -
127.0.0.1和0.0.0.0和localhost的区别
以下内容转载自https://blog.youkuaiyun.com/weixin_44493841/article/details/100204475127.0.0.1和0.0.0.0和localhost的区别127.0.0.1172.0.0.1是本地还回地址,专供自己访问自己,速度快(不用经过整个协议栈),永远都不能出现在主机外部的网络中,所以只适合用在开发环境。 一般我们通过ping 127.0.0.1来测试本地网络是否正常。其实从127.0.0.1~127.255.255.255,这整个都是回环.转载 2020-12-07 23:18:25 · 802 阅读 · 0 评论 -
ubuntu 当前服务和监听端口
转载自https://www.jianshu.com/p/d2cd1740fab0有几种方法来查看当前服务和端口1、使用lsof命令axing@ax:/usr/local$ sudo lsof -i -P -n | grep LISTENnrpe 1243 nagios 4u IPv4 15903 0t0 TCP *:5666 (LISTEN)nrpe 1243 nagios 5u IPv6 15904 ..转载 2020-10-16 18:46:30 · 7701 阅读 · 1 评论 -
sockaddr和sockaddr_in详解
一、sockaddrsockaddr在头文件#include <sys/socket.h>中定义,sockaddr的缺陷是:sa_data把目标地址和端口信息混在一起了,如下:struct sockaddr { sa_family_t sin_family;//地址族 char sa_data[14]; //14字节,包含套接字中的目标地址和端口信息 };二、sockaddr_insockaddr_in在头文件#include...转载 2020-06-12 11:54:00 · 447 阅读 · 0 评论 -
当我们说"TCP是可靠协议"时,我们真正表达的是什么
以下内容转载自https://blog.youkuaiyun.com/dog250/article/details/82177299 很明确地说,从通信意义上推敲,TCP一点都不可靠。一个抽象的协议,怎么可能左右介质来保证可靠,不存在的。但凡是经由某种介质的通信行为均不可能是绝对可靠的!正好比我们现实生活中的保险,其实它什么都不能阻止,什么风险也保证不了它的不发生,它保证不了飞机不会掉下来,也...转载 2018-09-18 19:08:14 · 337 阅读 · 0 评论 -
高效 实现长连接保活:手把手教你实现 自适应的心跳保活机制
以下内容转载自http://blog.youkuaiyun.com/carson_ho/article/details/79522975前言当实现具备实时性需求时,我们一般会选择长连接的通信方式而在实现长连接方式时,存在很多性能问题,如 长连接保活今天,我将 手把手教大家实现自适应的心跳保活机制,从而能高效维持长连接目录1. 长连接 介绍1.1 简介1.2 作用通过 长时间保持双方连接,从而:提高通信速度确保...转载 2018-03-13 10:19:02 · 2806 阅读 · 2 评论 -
游戏服务器架构演进
以下内容转账或引用或参考http://gad.qq.com/article/detail/32876这是王者荣耀技术分析系列第三篇,有兴趣请持续关注我的blog和公众号。1、像《王者荣耀》一样红过2、从《王者荣耀》来聊聊游戏的帧同步3、游戏服务器的架构演进想了解更多有料的原创文章,请关注我的公众号,大码侯(ID:cool_wier)转载 2017-10-10 20:59:37 · 389 阅读 · 0 评论 -
0-Linux 网络编程学习笔记导航
以下内容转载自http://blog.youkuaiyun.com/q1007729991/article/details/69091877学习交流群:Linux 学习交流群 610441700说明:本系列文章并不能取代 《UNP》这本旷世之作,文章中难免有错误与不足之处,希望读者们遇到有疑问的地方可以加群互相交流,共同进步。写这一系列文章的目的有三转载 2017-06-26 16:17:32 · 459 阅读 · 0 评论 -
1-网络协议基础
以下内容转载或参考或引用自http://blog.youkuaiyun.com/q1007729991/article/details/69101159很开兴你已经完成了 apue 的基础部分(Linux 环境编程学习笔记),如果你对这部分知识不甚了解,建议你先完成它。在 Linux 环境编程中,已经对基本的 socket 编程做了一个简单的介绍,如果你还没读那部分内容,建转载 2017-05-31 10:31:26 · 427 阅读 · 0 评论