![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 68
「已注销」
这个作者很懒,什么都没留下…
展开
-
网络协议学习(1):图解ARP协议概述
MAC地址(Media Access Control Address),直译为媒体访问控制地址,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网上设备位置的地址。在OSI模型中,第三层网络层负责IP地址,第二层数据链接层则负责MAC地址。MAC地址用于在网络中唯一标示一个网卡,一台设备若...转载 2019-05-20 14:40:01 · 549 阅读 · 0 评论 -
网络编程学习资料和网站
网站通信技术科普即时通信网特别推荐TCP/IP详解 卷1:协议《TCP/IP详解》读书笔记网络编程懒人入门脑残式网络编程入门不为人知的网络编程资料博客https://blog.csdn.net/hnlyyk/article/category/5805769...原创 2019-06-04 10:38:12 · 273 阅读 · 0 评论 -
Linux的I/O模型
参考:https://www.cnblogs.com/imstudy/p/9601005.htmlhttps://blog.csdn.net/qq_40732350/article/details/82823603...原创 2019-06-04 10:26:15 · 147 阅读 · 0 评论 -
Linux并发服务器的设计模式
循环(单线程且单进程)模式相当于短链接,当accept之后,就开始数据的接收和数据的发送,一次只能接收一个client,处理完后,处理下一个连接,不存在并发。listen(serverfd, listen_num);while(1){ connfd = accept(serverfd); read(connfd); write(connfd); close(connfd)...原创 2019-06-10 10:47:06 · 271 阅读 · 0 评论 -
LWIP(1):资源,网站和博客
网站:腾讯视频:正点原子手把手教你学Lwip网络资源:博客:总结一些在LwIP移植的时候体会原创 2019-06-09 10:59:45 · 194 阅读 · 0 评论 -
服务端判断客户端断开的经验方法
法一:当recv()返回值小于等于0时,socket连接断开。但是还需要判断 errno是否等于 EINTR,如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的,socket连接还是正常的,不应close掉socket连接。法二:struct tcp_info info;int len=sizeof(info);getsockopt(sock, I...原创 2019-06-08 08:32:20 · 2131 阅读 · 0 评论 -
PING命令过程
同一网段步骤a:应用程序ping会判断发送的是主机名还是IP地址,调用函数gethostby name()解析主机名B,将主机名转换成一个32位的IP地址。这个过程叫做DNS步骤b:ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层。步骤c:由于主机A和主机B在同一个局域网内,必须把目标主机的IP地址转换为48位的硬件地址,即调用ARP协议,在局域网内发送ARP请求广播,...原创 2019-06-02 10:10:18 · 1357 阅读 · 0 评论 -
网络协议学习(2):ICMP协议
ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP协议的功能主要有:1. 确认IP包是否成功到达目标地址...原创 2019-06-02 09:40:30 · 320 阅读 · 0 评论 -
HTTP协议(1):概述
1、前言HTTP(全称超文本传输协议,英文全称HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。对于移动端即时通讯(尤其IM应用)来说,现今主流的数据通信总结下来无外乎就是长连接+短连接的方式,而短连接在应用上讲就是本文将要介绍的HTTP协议的应用,...原创 2019-06-07 10:06:09 · 214 阅读 · 0 评论 -
NAT(地址转换技术)详解
版权声明:本文为小小呆原创文章,转载请注明出处! https://blog.csdn.net/gui951753/article/details/79593307目录 NAT产生背景 ip地址基础知识 NAT技术的工作原理和特点 静态NAT 动态NAT NAT重载(经常应用到实际中) NAT技术的优缺点 ...原创 2019-06-06 13:08:20 · 730 阅读 · 0 评论 -
公网IP和私网IP
IP可以分为Public IP 和 Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络,所以对于那些公司,学校,政府机构等场所,就可以集中使用私有的IP进行管理,而大家可以共用一个IP去连接上公网,这样,就省下了许多宝贵的Public IP。你有没有发现,你每次使用ipconfig查到的地址,要么就是172....原创 2019-06-06 12:53:01 · 1007 阅读 · 0 评论 -
I/O多路复用总结
select#incl_ude <sys/select. h>#include <sys/time.h>int select(int maxfd, fd_set * readset, fd_set * writeset, fd_set * exceptset, const struct timeval * time...原创 2019-06-05 10:27:51 · 201 阅读 · 0 评论 -
TCP协议的粘包问题及其解决
socket缓冲区和数据的传递过程,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发送了多少次,都会尽可能多的接收数据。也就是说,read()/recv() 和 write()/send() 的执行次数可能不同。例如,write()/send() 重复执行三次,每次都发送字符串"abc",那么目标机器上的 read()/recv() 可能分三次接收,每次都接收"abc...原创 2019-05-23 10:25:40 · 272 阅读 · 0 评论 -
Nagle算法
Nagle 算法为防止因数据包过多而发生网络过载, Nagle算法在1984年诞生了。它应用于TCP层,非常简单。其使用与否会导致如图所示差异。Nagle算法:“只有收到前一数据的ACK消息时,Nagle算法才发送下一数据”TCP套接字默认使用Nagle算法交换数据,因此最大限度地进行缓冲,直到收到ACK。图左侧正是这种情况。为了发送字符串"Nagle", 将其传递到输出缓冲。这时...原创 2019-05-23 10:15:38 · 2641 阅读 · 0 评论 -
SIGPIPE信号
当给一个已经关闭的socket端发送数据时,会产生一个SIGPIPE的信号,这个信号默认的处理是终止程序。当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST(表示这次的连接不能用了,需要重新建立连接)响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。我写了一个服务器程序,...原创 2019-05-24 17:23:53 · 301 阅读 · 0 评论 -
TCP/IP协议簇
TCP/IP协议族包含很多协议,这些协议分属不同的分层,承担不同的作用。分层TCP和UDP是两种主要的传输层协议。 IP是网络层的主要协议,TCP、UDP都需要利用IP协议进行数据传输。 ICMP是互联网控制报文协议,是IP的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要信息。比如一个Packet经过某个路由器节点的时候,超过网络对Packet的长度限制,而又不...原创 2019-05-24 16:54:59 · 499 阅读 · 0 评论 -
网络编程常用I/O函数
read/writereadv/writev“对数据进行整合传轮及发送的函数。”也就是说,通过writev 函数可以将分散保存在多个缓冲中的数据一并发送,通过readv函数可以由多个缓冲分别接收。因此,适当使用这2个函数可以减少I/O函数的调用次数。下面先介绍writev 函数。#include <sys/uio.h>ssize t writev(...原创 2019-06-04 10:50:23 · 260 阅读 · 0 评论