计算机网络
_s瓶子
这个作者很懒,什么都没留下…
展开
-
如何进行CRC校验
为了保证数据传输的可靠性,计算机网络传输数据时,必须采用差错检验措施,数据链路层广泛应用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术。基本原理: CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果原创 2017-05-11 16:52:25 · 20796 阅读 · 1 评论 -
套接字编程(三)----多进程
服务器端:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#include<netinet/in.h>static int startup(const char *_ip,int _port){原创 2017-06-03 09:58:40 · 286 阅读 · 0 评论 -
套接字编程(四)-----多线程
服务器端:#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#include<netinet/in.h>#include<string.h>void* handleRequest(void* arg)原创 2017-06-03 10:23:44 · 353 阅读 · 0 评论 -
TCP建立连接与释放时管理的定时器
TCP建立连接与释放时管理的定时器如下:重传计时器:Retransmission Timer 坚持计时器:Persistent Timer 保活计时器:Keeplive Timer 时间等待计时器(2MSL Timer):Time_Wait Timer FIN_WAIT_2定时器(FIN_WAIT_2 timer)重传计时器:Retransmission Timer 对于TCP发送出去的数原创 2017-06-03 17:31:25 · 549 阅读 · 0 评论 -
套接字编程(一)----基于TCP协议
套接字(socket):可以看做是不同主机之间的进程进行双向通信的端点,即通信的两方的一种约定,用套接字中的相关函数来完成通信过程。**socket=Ip Address+TCP/UDP+port三次握手建立连接 当客户端调用connect时,触发了连接请求,向服务器发送了SYN J包,这时connect进入阻塞状态;服务器监听到连接请求,即收到SYN J包,调用accept函数接收请求向客户原创 2017-06-02 17:29:52 · 846 阅读 · 0 评论 -
linux下线程池原理及实现
什么是线程池? 诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对转载 2017-06-03 10:47:32 · 1404 阅读 · 0 评论 -
套接字编程(二)-----基于UDP协议
服务器端:#include<stdio.h>#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>#include<arpa/inet.h>#include<string.h>#include<stdlib.h>int usage(const char *proc){printf("usage:%s [lo原创 2017-06-03 09:54:36 · 294 阅读 · 0 评论 -
五种I/O模型
一个I/O分为两步:1、等待数据就绪 2、数据搬迁阻塞I/O:应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。如果数据没有准备好,一直等待。数据准备好了,从内核拷贝到用户空间。例:一个人去钓鱼,等待鱼钩的同时什么都不做,如果鱼上钩就亲自把鱼放到桶里。非阻塞I/O:我们把一个套接口设置为非阻塞就是告诉内核,当所请求的I/O操作无法完成时,不要将进程睡眠,而是返回一个错误。这样我们的I/原创 2017-06-05 23:05:17 · 294 阅读 · 0 评论 -
TCP首部中URG与PSH的联系与区别以及6个控制位
URG与PSH的联系与区别联系: 都是一种对数据的处理方式。区别:URG交付给进程的数据: 1、只有紧急数据; 2、紧急数据不进入接收缓冲区而直接交付给进程,余下数据要进入接收缓冲区; 3、URG是处理在前端(收到数据后立马对真正意义上”数据”进行操作,所以说”紧急”。PSH交付给进程的数据: 1、缓冲区排好序的数据及当前报文中的数据; 2、PSH是在处理的后端,告诉内核,不用等待”满了原创 2017-05-20 10:00:13 · 1462 阅读 · 0 评论 -
网络端口号的类型
端口 在网络技术中,端口(Port)大致有两种意思: 1、物理意义上的端口:比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等; 2、逻辑意义上的端口:一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。端口的查看 查看端口可用NETSTAT命令,以下为在win原创 2017-05-20 08:48:36 · 2190 阅读 · 0 评论 -
路由表条目生成算法
路由表:路由表(routing table)存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。linux下路由表的查看: Destination:目的网络地址 Genmask:子网掩码 Gateway:下一跳地址 Iface:发送接口 Flags中的U标志表示此条目有效(可以禁用某些 条目)G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的⽹原创 2017-05-19 09:27:33 · 4475 阅读 · 0 评论 -
NAT技术与代理服务器
NAT技术:英文全称:Net Address Translation,即网络地址转换技术。它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址,从而在外部公(internet)上正常使用,NAT可以使多台计算机共享原创 2017-05-18 17:12:13 · 528 阅读 · 0 评论 -
Http协议Get和Post请求方式的区别及其使用场景
Get和Post请求方式的区别:请求方式 数据位置 数据安全 长度限制 数据类型 应用场景 Get 附加在URL之后 不安全 受URL长度的限制 只允许ASCII字符类型 查询数据 Post http请求...原创 2019-02-13 10:59:53 · 1589 阅读 · 0 评论