网络编程
卡木_
思而致远
展开
-
Linux平台(Ubuntu/Redhat)安装wireshark
转载自:https://blog.csdn.net/magiclyj/article/details/77231707感谢:作者magiclyjwireshark是一个我们用来抓包的好帮手,使用它可让我们看到端口数据变化(tcp/http等都可以),如接收、发送甚至是我们每个操作命令如何传递,都可以通过wireshark来截取数据查看,它会把数据信息原样的展示给你。 这里有两个Linux版本安装说...转载 2018-05-03 16:38:50 · 1026 阅读 · 0 评论 -
Linux I/O多路复用技术(epoll、select和poll)
参考:https://www.cnblogs.com/aspirant/p/9166944.html select、poll、epoll之间的区别(搜狗面试)https://www.cnblogs.com/lit10050528/p/4650557.html linux select 学习https://blog.csdn.net/qq_19923217/articl...原创 2019-08-15 11:46:40 · 272 阅读 · 0 评论 -
常见TCP/IP面试题
/*整理网络资源*/一、传输层的主要功能是什么? 分割并重新组装上层提供的数据流,为数据流提供端到端的传输服务。(UDP会在IP层进行分片)二、传输层如何区分不同应用程序的数据流? 因为,对应传输层而言,它只需要知道目标主机上的哪个服务程序来响应这个程序,而不需要知道这个服务程序是干什么的。因此,我们只需要能够抽象的表示出来这些应用程序和服务程序即可。我们使用端口号来抽...原创 2019-02-21 10:49:34 · 1421 阅读 · 0 评论 -
UNP学习笔记十:wireshark抓包分析TCP
(十)wireshark抓包分析TCP(1)Ubuntu平台的安装(2)wireshark添加用户组(3)Lua脚本修改:修改init.lua#直接运行wireshark的话会报错:Lua: Error during loading:[string"/usr/share/wireshark/init.lua"]:45: dofile has been disabled...原创 2019-01-07 17:09:00 · 434 阅读 · 0 评论 -
UNP学习笔记九:字节序相关
(九)字节序相关(1)字节序有两种:大段(高字节在低地址位,低字节在高地址位)、小端(反之)(2)某台主机硬件决定的字节序就是主机字节序(可能是大小端之一)(3)网络字节序 = 大端字节序。(4)在struct sockadr_in xx; xx.sin_family 要求是主机字节序,直接使用AF_INET等即可。xx.sin_port/xx.sin_addr 要求是网络字节序,必须使用字节序...原创 2018-05-05 11:57:43 · 208 阅读 · 0 评论 -
UNP学习笔记八:描述符引用计数
(八)描述符引用计数当open()一个文件时有文件描述符;当socket()一个套接字时有套接字描述符;当accept()接收一个tcp连接时有已连接描述符。内核会对每个进程的所有描述符做记录,用一个描述符计数变量count,一个描述符count = 1。。。。。。,当count = 0时TCP才正常执行四路挥手终止。Exit()和close()都会使count – 1,但不会直接使TCP终止。尤...原创 2018-05-05 11:56:55 · 1099 阅读 · 0 评论 -
UNP学习笔记七:套接字函数整理
(七)套接字函数整理(1)IPv4套接字地址结构struct sockaddr_in{ uint8_t sin_len; //length of sockaddr_in sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero[8]; //unuse...原创 2018-05-05 11:56:05 · 333 阅读 · 0 评论 -
UNP学习笔记六:套接字对(端口号和IP地址)
(六)套接字对(端口号和IP地址)要说套接字编程的基础是什么,我认为就是套接字对。套接字就是:一台主机的IP地址和端口号,套接字对就是互传信息两台主机的IP和端口号。在两台主机connect时,就是通过对应的套接字联系起来的。对客户来说:需要明确自己要连接的服务器IP和端口号,而自己的IP和端口号一般由内核默认了,会在连接后传给服务器。对服务器来说:需要明确自己监听的本机的端口就行,本机的IP可由...原创 2018-05-05 11:54:02 · 1123 阅读 · 0 评论 -
UNP学习笔记五:TCP四次挥手终止
(五)TCP四次挥手终止(1)四次握手过程假设主机A为客户端,主机B为服务器,其释放TCP连接的过程如下: 1) 关闭客户端到服务器的连接:首先客户端A发送一个FIN,用来关闭客户到服务器的数据传送,然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u 2)服务器收到这个FIN,它发回一个ACK,确认号ack为收到的序号加1。 3) 关闭服务器到客户端的连接:也是发送一个...转载 2018-05-05 11:53:12 · 301 阅读 · 0 评论 -
UNP学习笔记四:TCP三次握手连接
(四)TCP三次握手连接(1)TCP位置和作用 TCP是TCP/IP协议族中传输层的一个协议,主要负责通过套接字沟通应用层和下层。(2)TCP的三次握手连接过程序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 ...转载 2018-05-05 11:51:54 · 235 阅读 · 0 评论 -
UNP学习笔记三:包裹函数
(三)包裹函数包裹函数顾名思义就是:在一个函数Name中调用一个函数name,并作出相关处理。其实就是封装。一般来说,包裹函数的返回类型和参数与将要调用的函数name相同,而函数名的第一个字母用大写以区分;相关处理多为对错误的处理,如检测到错误errno,则输出perror(”error”),并退出进程exit(0);或者函数调用失败,输出提示信息。...原创 2018-05-05 11:49:14 · 744 阅读 · 0 评论 -
UNP学习笔记二:unix的errno
(二)unix的errno (1)unix的errno值errno是一个又unix内核定义的变量(在sys/errno.h中)errno专门处理相关系统错误这些错误分别为:Linux中,在头文件 /usr/include/asm-generic/errno-base.h 对基础常用errno...原创 2018-05-05 11:48:09 · 507 阅读 · 0 评论 -
UNP学习笔记一:OSI模型和TCP_IP协议族
(一)OSI模型和TCP_IP协议族(1)unix网络编程是什么?要做什么?(2)首先看看网络模型:OSI模型和TCP/IP协议族。OSI模型:共七层: TCP/IP协议族:共五层: 7 应用层 5 应用层6 表示层5 会话层4 传输层 4 传输层3 网络层 ...原创 2018-05-05 11:45:52 · 248 阅读 · 0 评论 -
TCP 三次握手、四次分手相关
1.参考:https://blog.csdn.net/u013344815/article/details/72134950tcp三次握手的过程、每次握手的意义 及 第三次握手的必要性。第三次握手的必要性:防止已失效的请求报文段突然又传送到了服务端而造成连接的误判。说白了就是,建立稳定可靠的链接,同时用容错来处理错误多余的资源。另外,这里面有点没说到的是,TCP三次握手的状态问题,...原创 2019-08-13 10:45:03 · 205 阅读 · 0 评论