
网络
文章平均质量分 88
mac_timmy
这个作者很懒,什么都没留下…
展开
-
UDP协议解析
个人博客传送门本文主要参考谢希仁老先生的计算机网络一书UDP概述及特点UDP称为用户数据包协议,是传输层的协议。他的功能其实就是在ip的数据报服务之上添加了复用、分用和差错检验。特点:无连接,即发送数据之前不需要建立连接。无连接的好处就是快,省内存空间。因为维护连接需要创建大量的数据结构,在这里都不需要。UDP尽最大努力交付数据,即不保证可靠交付。没有TCP的确认机制、重传...原创 2018-07-18 16:48:06 · 3296 阅读 · 0 评论 -
网络编程基础-简单的TCP回显程序(多进程和多线程版本)
这篇文章是对于上一篇文章的单进程版本的优化。不过这里采用的是回显方式,不是阻塞式聊天。客户端使用的同一个客户端代码。客户端代码多进程服务器端#include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.原创 2018-08-03 11:46:51 · 423 阅读 · 2 评论 -
数据链路层中以太网、MAC、MTU的解析
数据链路层在网络分层中处于倒数第二层,是在物理层上面的一层。他的作用主要是负责处于同一种数据链路节点中的两个设备之间进行传递数据。原创 2018-08-07 09:22:49 · 1613 阅读 · 0 评论 -
DNS系统
DNS出现的背景DNS叫做域名解析系统,它映射了域名和IP地址的关系。我们都知道,在网络中通过IP+port来确定唯一一主机中的唯一进程,但是IP地址不方便记忆,所以为了解决这个问题,提出了一个概念叫做主机名,是一个字符串,并使用hosts文件来描述字符串和IP的映射关系。刚开始是通过互联网信息中心来管理这个hosts文件的,但是这样很麻烦,如果有一个新的主机要接入网络或者IP地址变更,就...原创 2018-08-06 23:07:21 · 661 阅读 · 0 评论 -
高级I/O中多路转接之epoll
在介绍epoll之前,先说说poll。我们都知道,select通过固定的参数位置加输入输出型参数来进行数据的传递。这样做就有一个很大的缺陷,操作麻烦。用户自己还需要创建一个新的数组,将进行监听的源数据保留下来。同时还有一个硬伤,就是select监听的fd是有上限的,这个上限只能通过修改内核的属性来实现增强。如果我们的服务器业务很大的话,就会发现select不够用。所以有后来出现了poll,po...原创 2018-08-10 11:19:29 · 414 阅读 · 0 评论 -
网络层解析
网络层提供的服务网络层的任务是将多个网络通过路由器互连成一个互连网络,让网络中的多台计算机可以互相通信。其中网络层最重要的协议是IP协议。网络的特点是:向上提供简单灵活的、无连接的、尽最大努力交付的数据包服务。IP协议IP数据报头格式IP地址的分类IP地址和硬件地址地址解析协议ARP划分子网网际控制报文ICMP路由选择IP...原创 2018-08-06 10:03:11 · 1669 阅读 · 0 评论 -
HTTP协议解析-实现超简单的多线程版本HTTP服务器
http协议是一个应用层的协议,https是一个安全性更高的协议。本文讲述http协议的报头、报头属性以及实现一个简单的http服务器。url在认识http之前,我们有必要认识url。url就是我们常说的网址。...原创 2018-08-03 23:07:25 · 2282 阅读 · 0 评论 -
网络编程基础-简单的TCP阻塞式网络聊天应用(单进程版本)
本程序使用的TCP协议,该协议是面向连接、通过字节流进行通信的。实现了客户端和服务器端的阻塞式通信。主要锻炼了对于socket API的使用。程序使用的函数其中socket、bind、地址转换函数在网络基础编程-UDP为例已经分析过。这里介绍的函数适用于TCP这类面向连接的协议。listen当我们的网络程序需要使用TCP面向连接一类的协议的时候,socket中选用了SOCK_S...原创 2018-07-30 15:51:51 · 478 阅读 · 0 评论 -
TCP协议解析
TCP概述及特点TCP报头理解TCP的连接管理机制连接链接的工作三次握手三次握手出现报文丢失的情况分析:为什么不是二次握手,四次握手?断开四次挥手TIME_WAIT状态半关闭同时关闭状态转换服务器端状态转化可靠传输流量控制拥塞控制异常终止粘包问题基于TCP的应用协议本文主体参考谢希仁老先生计算机网络一书TCP概...原创 2018-07-21 23:53:56 · 790 阅读 · 0 评论 -
网络编程基础-UDP为例
本文只是基于认识的讲述网络编程基础。基础认识认识IPIP地址是在IP协议中用来表示网络中不同的主机的地址IPv4是4个字节,32位;IPv6是16个字节,128位。目前通用的是IPv4。通常用点分十进制来的字符串来表示IP地址。例如常见的192.168.1.1,每一个点分隔一个字节,范围是0~255理解源IP地址和目的IP地址:源IP地址是发送端的IP地址,目的IP地址...原创 2018-07-24 16:41:40 · 648 阅读 · 0 评论 -
高级I/O中多路转接-select
我们都知道I/O的速度很慢,电脑的瓶颈很大一部分就在磁盘I/O速度跟不上CPU的处理速度。I/O的部分其实分为两部分,第一步是等待,就是等待数据到来的时候;第二步是数据拷贝。通常来说等待的时间占大头,为了提高I/O的效率就需要减少等待的时间。五种I/O模型阻塞I/O:这是最常见的I/O方式,在内核将数据准备好之前,系统调用会一直处于等待状态。网络套接字的默认方式都是阻塞方式。非阻塞I/...原创 2018-08-08 16:41:43 · 476 阅读 · 0 评论