Network
网络相关知识
xupeng1644
道阻且长,行则将至!
展开
-
HTTP 与 HTTPS 的区别
基本概念HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。HTTP ...转载 2020-03-13 08:22:02 · 1340 阅读 · 0 评论 -
TCP 套接字选项
获取、设置套接字选项#include <sys/socket.h>int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level, int optname, const void *optval, soc...转载 2020-03-09 14:46:37 · 1823 阅读 · 0 评论 -
SO_LINGER选项
SO_LINGER选项用于控制close系统调用在关闭TCP连接时的行为。默认情况下,当我们使用close系统调用来关闭一个socket时,close将立即返回,TCP模块负责把该socket对应的TCP发送缓冲区中残留的数据发送给对方。设置(获取)SO_LINGER选项的值时,我们需要给setsockopt(getsockopt)系统调用传递一个linger类型的结构体,其定义如下:#inc...转载 2020-03-09 11:17:44 · 2376 阅读 · 0 评论 -
Nagle算法
概述在网络拥塞控制领域,有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个算法来尝试解决福特汽车公司的网络拥塞问题(RFC 896)。该问题的具体描述是:如果我们的应用程序一次产生1个字节的数据,而这个1个字节数据又以网络数据包的形式发送到远端服务器,那么就很容易导致网络由于...转载 2020-03-09 09:52:35 · 8040 阅读 · 0 评论 -
搞定计算机网络面试,看这篇就够了
搞定计算机网络面试,看这篇就够了转载 2020-03-02 09:57:57 · 1432 阅读 · 0 评论 -
TCP 七种定时器
TCP中的7种定时器:建立连接定时器(connection-establishment timer) 重传定时器(retransmission timer) 延迟应答定时器(delayed ACK timer) 坚持定时器(persist timer) 保活定时器(keepalive timer) FIN_WAIT_2定时器(FIN_WAIT_2 timer) TIME_WAIT定时器 (T...转载 2020-03-01 19:12:19 · 1511 阅读 · 0 评论 -
TCP 四种定时器
TCP使用四种定时器(Timer,也称为“计时器”):重传计时器:Retransmission Timer坚持计时器:Persistent Timer保活计时器:Keeplive Timer时间等待计时器:Time_Wait Timer。重传计时器重传定时器:为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。当TCP发送报文段时,就创建这个特定报文段的重传计时器,可能发...转载 2020-03-01 19:10:09 · 1427 阅读 · 0 评论 -
最新42道计算机网络面试题!-- 附答案
写在前面计...转载 2020-03-01 15:20:49 · 13305 阅读 · 10 评论 -
面试之网络总结
网络相关的知识点比较多,也比较细。如果提及的话,需要对其细节有较为深入的理解才能自如回答。TCP/IP协议族和ISO的OSI七层体系的区别?待添加TCP与UDP的区别?TCP是有连接的字节流协议,UDP是无连接的数据报协议。因为发送数据之前需要建立连接,而UDP不需要建立连接,所以TCP是可靠的而UDP是不可靠的。TCP为了保持尽最大可能交付数据,采取的功能包括确认、超时重传、流量控制、拥...原创 2020-02-14 22:09:42 · 1401 阅读 · 0 评论 -
几种TCP连接中出现RST的情况
应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。 在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包。而接收端收...转载 2020-02-06 18:52:23 · 3014 阅读 · 0 评论 -
TCP协议三次握手和四次握手机制-动画详解
人工智能,零基础入门!http://www.captainbed.net/innerTCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答。本篇尝试使用动画来对这个知识点进行讲解,期望读者们可以更加简单地地理解TCP交互的本...转载 2020-02-05 14:25:59 · 1428 阅读 · 0 评论 -
C++ 简单的SQL注入过滤
前几天帮一个客户写了一个C++连接MySQL,当他用到他的游戏中后,被人注射了,用了一个永真式,无限的刷了游戏装备所以,我针对参数和整体SQL语句写了两个简单的函数,进行简单的过滤。bool CheckSQL(string sql){ string key[9] = { "%","/","union","|","&","^" ,"#","/*","*/"}; for ...转载 2020-01-09 17:48:56 · 3089 阅读 · 0 评论 -
IP、TCP、UDP首部详解
IP首部IP首部字段图IP首部字段详情4位版本:协议版本号,IPv4是0100,IPv6是0110,目前基本都是IPv4版本。4位首部长度:指首部占32bit字的数目,包括选项区,也就是说单位是4个字节,如图1-1首部是20个字节,那首部字段值为5,即0101,首部最大值是1111,也就是说首部长度字段最大可表示15(1111)*4 = 60字节长度(包含选项段)。普通IP数据报(没...转载 2020-01-09 17:39:59 · 4906 阅读 · 0 评论 -
TCP层的分段和IP层的分片之间的关系 & MTU和MSS之间的关系
首先说明:数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层。但是对于分段来说,这是经常发生在UDP传输层协议上的情况,对于传输层使用TCP协议的通道来说,这种事情很少发生。1,MTU(Maximum Transmission Unit,MT...转载 2020-01-09 15:12:29 · 1479 阅读 · 0 评论 -
防止SQL注入的五种方法
一、SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。二、SQL注入攻击的总体思路1.寻找到SQL注入的位置2.判断服务器类型和后台数据库类型3.针对不通的服务器和数据库特点进行SQL注入攻击 三、SQL注入攻...转载 2020-01-09 14:36:36 · 3042 阅读 · 0 评论 -
SYN Flood应如何应对
1 什么是SYN Flood攻击 在TCP三次握手时,服务器接收客户端的SYN请求,操作系统将为该请求分配一个TCP(Transmission Control Block),服务器返回一个SYN/ACK请求,并将处于SYN_RCVD状态(半开连接状态)。 从以上过程可以看到,如果恶意的向某个服务器端口发送大量的SYN包,则可以使服务器打开大量的半开连接,分配TCB,从而消耗大量的...转载 2020-01-09 12:24:53 · 2039 阅读 · 0 评论 -
套接字超时选项(SO_RCVTIMEO 与 SO_SNDTIMEO)
设置套接字超时的第三个技术是使用套接字选项 SO_RCVTIMEO 与 SO_SNDTIMEO,它的优势在于一次设置,所有应用于该套接字的操作都自动带有超时时间。它就好像是一个全局开关。比如对于 SO_RCVTIMEO 来说,如果设置了它,所有对该套接字的读操作在规定的时间里没完成,就直接返回并设置 errno = EWOULDBLOCK,对于 SO_SNDTIMEO 选项来说也是一样。1. ...转载 2020-01-09 12:02:53 · 3747 阅读 · 0 评论 -
TCP异常终止(RESET报文)
TCP的异常终止是相对于正常释放TCP连接的过程而言的,我们都知道,TCP连接的建立是通过三次握手完成的,而TCP正常释放连接是通过四次挥手来完成,但是有些情况下,TCP在交互的过程中会出现一些意想不到的情况,导致TCP无法按照正常的四次挥手来释放连接,如果此时不通过其他的方式来释放TCP连接的话,这个TCP连接将会一直存在,占用系统的部分资源。在这种情况下,我们就需要有一种能够释放TCP连接的...转载 2020-01-06 16:10:59 · 1764 阅读 · 0 评论 -
TCP新手误区–数据校验的意义
背景最近面试了很多的学生,发现很多TCP的新手对于TCP的使用有一些误区,而这些坑也是当初我曾经疑惑过得地方。网上很少有文章对这些问题有过详细的解析,即是有也只是直接给出结论和做法,没有人将其中的来龙去脉讲解清楚,所以我将这些问题的来龙去脉在这一系列的文章中讲述出来,希望能让广大TCP的新手避开这些坑。问题我面试时经常会问的一个问题是TCP如何保证数据的正确性,保证数据内容不会出错。大部分人...转载 2020-01-06 14:21:36 · 2228 阅读 · 0 评论 -
TCP新手误区–粘包的处理
背景最近面试了很多的学生,发现很多TCP的新手对于TCP的使用有一些误区,而这些坑也是当初我曾经疑惑过得地方。网上很少有文章对这些问题有过详细的解析,即是有也只是直接给出结论和做法,没有人将其中的来龙去脉讲解清楚,所以我将这些问题的来龙去脉在这一系列的文章中讲述出来,希望能让广大TCP的新手避开这些坑。问题我面试时经常会问的一个问题是当TCP两端A、B建立了连接后,A端先发送100个字节,再...转载 2020-01-06 14:04:14 · 1345 阅读 · 0 评论 -
两种心跳机制
TCP长连接中可能出现的问题:1 很多防火墙路由器等对于空闲socket自动关闭2 对于非正常断开, 服务器并不能检测到. 为了回收资源, 必须提供一种检测机制.于是,就有了心跳(HeartBeat)机制。心跳机制的两种实现方案目前而言,有两种方式实现TCP的保活(业内现状是IM方面几乎都采用第一种)应用层协议自己实现的心跳机制很多应用层协议都有HeartBeat机制,由应用自己实现...转载 2020-01-06 13:41:03 · 2917 阅读 · 2 评论 -
让人心烦的TIME_WAIT状态与SO_REUSEADDR选项
本文有更新,请移步我的个人博客:https://blog.andyqiao.top/article/15/1 发现问题 我在开发一个socket服务器程序并反复调试的时候,发现了一个让人无比心烦的情况:每次kill掉该服务器进程并重新启动的时候,都会出现bind错误:error:98,Address already in use。然而再kill掉该进程,再次重新启动的时候,就b...转载 2020-01-06 13:31:42 · 1550 阅读 · 0 评论 -
计算机网络面试题
常见面试题整理–计算机网络篇(每位开发者必备)https://zhuanlan.zhihu.com/p/24001696原创 2020-01-06 12:03:24 · 1283 阅读 · 0 评论 -
计算机网络面试问题集锦
写在前面: 找工作告一段落,期间经历了很多事情,也思考了许多问题,最后也收获了一些沉甸甸的东西 —— 成长和一些来自阿里、百度、京东(sp)、华为等厂子的Offer。好在一切又回到正轨,接下来要好好总结一番才不枉这段经历,遂将此过程中笔者的一些笔试/面试心得、干货发表出来,与众共享之。在此特别要感谢CSDN以及广大朋友的支持,我将坚持记录并分享自己所学、所想、所悟,央请大家不吝赐教,提出您宝贵...转载 2020-01-06 11:21:46 · 1477 阅读 · 0 评论 -
面试带你飞:这是一份全面的 计算机网络基础 总结攻略
前言计算机网络基础 该是程序猿需掌握的知识,也是面试过程中常常考察的内容,但往往会被忽略今天,我将献上一份详细 & 清晰的计算机网络基础 学习指南,涵盖 TCP / UDP协议、Http协议、Socket等,希望你们会喜欢。目录1. 计算机网络体系结构1.1 简介定义计算机网络的各层 + 其协议的集合作用定义该计算机网络的所能完成的功能1.2 结构介绍...转载 2020-01-06 11:16:06 · 1364 阅读 · 0 评论 -
带你了解HTTP协议(二)
同样的,本文篇幅也比较长,先来一张思维导图,带大家过一遍。 一图看完本文一、 计算机网络体系结构分层 计算机网络体系结构分层 计算机网络体系结构分层不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计...转载 2019-10-18 17:06:15 · 1661 阅读 · 0 评论 -
带你了解HTTP协议(一)
本篇文章篇幅比较长,先来个思维导图预览一下。 一张图带你看完本篇文章一、概述1.计算机网络体系结构分层 计算机网络体系结构分层2.TCP/IP 通信传输流利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层往上走。如下: TCP/IP 通信传输流...转载 2019-10-18 17:04:00 · 2752 阅读 · 0 评论 -
一个Http请求的流程
1.一个Http请求的流程:DNS域名解析 –> 发起TCP的三次握手 –> 建立TCP连接后发起http请求 –> 服务器响应http请求,浏览器得到html代码 –> 浏览器解析html代码,并请求html代码中的资源(如javascript、css、图片等) –> 浏览器对页面进行渲染呈现给用户举个例子在浏览器中输入w...转载 2019-10-18 10:33:00 · 1393 阅读 · 0 评论 -
DNS原理总结及其解析过程详解
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-10-18 10:07:07 · 1768 阅读 · 0 评论 -
面试官,不要再问我三次握手和四次挥手
原创 面试官,不要再问我三次握手和四次挥手 置顶 ...转载 2019-10-17 09:45:25 · 1384 阅读 · 0 评论