
Linux网络编程
文章平均质量分 76
风吹雨淋
这个作者很懒,什么都没留下…
展开
-
Linux网络:HTTP协议
1.概述http协议叫超文本传输协议http工作在应用层的协议1.无连接 :http协议在发送http数据时,本身不需要和服务端建立连接;但是http在传输层使用的是tcp协议,tcp协议在传输数据时需要建立连接;2.无状态:http协议本身对请求和响应不做保存2.http协议的url解释3.http的数据流4.协议格式5.协议版本6.http的请求方法7.http协议的响应状态码,状态码解释8.请求/响应的常见字段9.代码模拟实现http协议与浏览器的交互.原创 2021-08-29 10:30:28 · 616 阅读 · 0 评论 -
DNS协议
DNS协议叫做域名解析协议,将域名转换成为ip地址方便人们记忆域名解析域名:一个字符串(xxx.com);DNS:将域名转换成ip地址;域名是有等级划分:一级域名、二级、三级……一级域名:.com .cn .us .edu二级域名:字符串+.combaidu.com,www没有实际作用三级域名:字符串+字符串+.com这些域名被不同的域名服务器所管理,域名服务器划分为根域名服务器、一级域名服务器、二级、三级根域名服务器:用来给其它域名服务器授权;一级域名服务器原创 2021-09-09 15:25:13 · 185 阅读 · 0 评论 -
NAT技术
NAT地址转换协议用于解决目前ipv4版本的ip地址不够用的问题之所以能通过私网ip访问互联网,是将该私网ip进行地址转换成公网ip,将这个转换过程称为NAT转换,也叫地址转换三种NAT方式1.静态NATNAT服务器针对私网ip,一对一的转换成为公网ip;私网ip机器发送数据永远都是这一个公网ip与之对应;2.动态NATNAT服务器维护多个公网ip地址,当私网主机想要访问互联网时,找一个空闲的公网ip与之转换;每次转换的公网ip可能不同;不管怎样,静态和动态NAT原创 2021-09-09 11:23:43 · 519 阅读 · 0 评论 -
数据链路层:以太网协议&arp协议
路由选择:在网络层先进行路由选择,然后进入数据链路层;数据链路层协议:以太网协议,arp协议以太网协议网络层的ip协议负责路由选择(发送的数据走哪一条路到达对端);数据链路层负责相邻设备的转发;数据链路层使用到的是MAC地址 (物理地址),与网卡相关,一个物理网卡中的MAC是全球唯一的;...原创 2021-09-08 20:59:14 · 395 阅读 · 0 评论 -
ip协议格式&ip地址管理
ip协议格式ip地址管理路由选择原创 2021-09-07 15:52:37 · 608 阅读 · 1 评论 -
tcp面向字节流特性
1.从发送数据角度理解:应用层的应用程序在发送数据时,是调用send函数将应用层数据递交给传输层的tcp协议;递交给tcp数据后,数据是暂时保存在发送缓冲区中;不能认为tcp在发送数据时,调用send函数一次发送一次数据;tcp发送数据一定小于MSS2.从接收数据的角度理解:当数据到达接收方缓冲区后,接收方的应用程序调用recv函数可以接收任意字节tcp粘包问题什么是tcp粘包:接收方无法针对数据进行拆分,因为tcp是面向字节流的,数据间没有明显的间隔,就导致服.原创 2021-09-06 20:16:27 · 1126 阅读 · 0 评论 -
tcp特性:可靠传输
tcp协议格式MTU的大小一般是1500字节在传输层只关心端与端传输,udp和tcp协议都不涉及源ip和目的ip可靠传输保证可靠:传输的数据一定会到达对端保证传输效率保证可靠的方式这两种方式都要使用到序号确认应答机制服:发送方发送数据后需要接收方确认回复确认数据包工作,是tcp自己在网络协议栈中完成的,不需要程序员介入;程序员只调用recv函数从缓冲区中拿数据超时重传机制:发送方发送数据就会开启一个重传计数器,当计数器的时间超过重传时间就会重传报文超时重传时间原创 2021-09-06 19:02:29 · 2089 阅读 · 0 评论 -
tcp特性:面向连接特性(三握四挥)
传输层:负责端与端间的传输,有两个协议udp和tcp特性udp协议包头字段:udp缓冲区:发送缓冲区:将应用层提交给传输层的应用层数据打上udp包头后,提交给网络层继续传输;接收缓冲区:去掉udp包头后,将数据递交给应用层;udp不保证数据的可靠和有序;udp常见的应用场景DNS:域名解析DHCP:动态主机分配协议;谁上网给谁分配ip同一个局域网内部可能使用udp,因为网路稳定NFS:网络文件系统TCP双方发送数据包名称与连接状态三次握手双方的数据包名与连接状态对于原创 2021-09-03 11:15:12 · 1646 阅读 · 0 评论 -
UDP与TCP协议格式
包头字段:应用层产生比2^16还要大的数据,要用到在应用层针对数据进行分包,将超过该字节的数据进行拆分,分别使用udp协议传输1.将分包的数据在应用层进行描述,定义一个包头标识:同一个udp数据报具有相同的标识符标志位:标识分片的udp数据后还有没有分片;为1表示还是还要1个分片片偏移,标识分片在整个udp数据包中的位置,表示是整个数据中第几个字节2.然后将每个包头+数据包进行传输3.当应用层接收到数据,识别到有自定义包头,则将该段数据保存在应用层,查看包头来寻找下一段数据ud原创 2021-09-03 10:57:19 · 561 阅读 · 0 评论 -
Linux:tcp多进程&多线程通信
tcp多进程编程:让子进程和客户端进行通信父进程调用accept函数,接收新连接完毕之后,再创建子进程代码:当多个客户端与服务端连接时,服务端就会创建出两个子进程提供数据交互父进程进行accept,子进程进行recv和send当客户端关闭连接,服务端子进程也就没有必要再去连接客户端,所以子进程运行至54行执行exit函数退出;但是子进程先于父进程退出,子进程就变成了僵尸进程,每当服务端关闭一次,就会多产生一个僵尸进程;解决方案:使用signal函数修改SIGCHLD信号的处理方式原创 2021-08-27 22:53:00 · 722 阅读 · 0 评论 -
Linux:tcp socket编程
,原创 2021-08-26 18:45:02 · 311 阅读 · 0 评论 -
Linux:udp socket编程
编程流程对于网络编程要从客户端和服务端来看,在网络通信前,双方都要做准备工作:对于服务端1.创建套接字2.绑定端口地址信息,将进程和网络IP与端口进行绑定也就是说,现在有一个服务端进程,绑定地址信息的原因是要有一个能标识自己在哪一个进程的端口,一个端口只能被一个进程绑定,当客户端连接该进程只需要拿到端口对于客户端1.创建套接字2.不推荐绑定地址信息前期准备工作完成后,客户端和服务端就能相互发送消息一定是UDP客户端先给服务端发消息服务端是不知道客户端在哪一个端口原创 2021-08-17 21:47:13 · 571 阅读 · 0 评论 -
Linux:网络五元组&tcp、udp特性
1.网络五元组信息原创 2021-08-16 10:54:16 · 691 阅读 · 0 评论 -
Linux:网络基础
网络协议网络解决的问题是牵扯到数据双方的,一定存在一个数据的发送方和一个数据接收方;网络解决的就是不同机器之间,不同进程的进程间通信问题网络协议:两个机器通信,就要用到相同的数据格式网络协议就是解决网络双方,发送的网络数据格式问题;网络协议本质上对发送和接收数据的格式做出了约定;在整个网络协议栈中并不是只有一个,并且有协议分层OSI七层模型物物理层数数据链路层网网络层传传输层会会话层表表示层应应用层这是一个原创 2021-08-15 19:21:56 · 129 阅读 · 0 评论