
socket
文章平均质量分 89
焱齿
tencent
展开
-
wiresharks抓包分析(tcpdump抓包并还原请求体)
前言:先说下今天遇到的一个问题。和外部门同学对接消息记录拉取,采用的是pb协议,接口机的L5暴露给对方用以拉取。对方请求后表示IO超时没有收到对应回包,于是对方质疑我方有问题。现需要排查原因,更准确说如何找证据打脸对方。分析:我方业务是相对成熟的,这种问题大概率是对方发过来的请求不对,例如缺少某些字段导致接口机无法将请求转发给后方业务机。注:经过沟通发现对方不能打印请求体(具体原因也不管了)。思路无非如下(其中第二点是此次研究的重点):①首先tcpdump抓包看看我方究竟有没有收到对方的请求;.原创 2022-06-15 20:46:32 · 1221 阅读 · 2 评论 -
网络编程中sockaddr和sockaddr_in的区别(socket)
这两个结构体都是用来处理网络通信的地址。网络中的地址包含3方面的属性:(1)地址类型:ipv4还是ipv6(2)ip地址(3)端口相应的头文件有如下定义:include <netinet / in.h>struct sockaddr { unsigned short sa_family; // 2 bytes address family, AF_xxx char ...原创 2018-07-02 11:23:15 · 273 阅读 · 0 评论 -
python socket编程(tcp/udp)
晚点补充一下这篇文章。主要研究一下python下的tcp/udp的使用,包括收发双方;对于tcp的话要考虑循环接收。原创 2021-03-27 17:22:10 · 6448 阅读 · 0 评论 -
TCP连接保活之Keepalive
1、TCP保活的必要性1)我们知道TCP是无感知的虚拟链接,中间断开两端并不会感知到。(注:关于虚拟连接就是说我并不实际感知你的存在,只是因为我存储了你对应的一个结构和状态就认为你实际存在)2)很多防火墙等会对空闲的socket自动关闭;连接的双方在链接空闲状态时,任意一方意外崩溃、宕机、网线断开、路由器故障等事情都是有可能发生的。3)对于非正常的断开服务器自身并不能检测到,除非继续在此连接上发送数据导致错误返回,我们才能判断连接出现故障。显然这不是我们真正需要的。4)我们希望服务端和客户端原创 2020-11-12 16:30:38 · 853 阅读 · 0 评论 -
Socket、send/recv的循环发送和接收、缓冲区、阻塞
这篇文章略作删减后转过来了。主要有以下几点值得自己注意的:(1)刚开头对套接字的理解。(2)缓冲区的理解。其他部分有时间重新整理。套接字的概念及分类 在网络中,要全局的标识一个参与通信的进程,需要三元组:协议,IP地址以及端口号。要描述两个应用进程之间的端到端的通信关联需要五元组:协议,信源主机IP,信源应用进程端口,信宿主机IP,信宿应用进程端口。为了实现两个应用...原创 2018-07-19 16:43:00 · 23921 阅读 · 8 评论 -
深入理解socket编程的几个函数和两种fd
在开始之前希望大家都只到以下几点:首先,一个端口肯定只能绑定一个socket,当然这个socket可能会产生很多“socket连接”;其次,只要服务器性能好一个端口就可以绑定无数个“socket连接”;再次,一个socket句柄代表两个地址对“本地IP:端口”--“远程IP:端口”。关于这一点我们多说几句:我们知道在广袤的互联网中唯一标示一个进程(应用程序)需要三元组...原创 2018-07-09 14:35:24 · 7884 阅读 · 2 评论 -
socket开发中INADDR_ANY"的含义是什么?
INADDR_ANY:转换过来就是0.0.0.0,泛指本机的意思,也就是表示本机的所有IP。因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思。比如一台电脑有3块网卡,分别连接三个网络,那么这台电脑就有3个ip地址了,如果某个应用程序需要监听某个端口,那他要监听哪个网卡地址的端口呢?如果绑定某个具体的ip地址,你只能监听你所设置的ip地址所在的网卡的端口,其它两块网卡...转载 2018-12-27 22:32:36 · 313 阅读 · 0 评论