计算机网络
文章平均质量分 77
随风而动,随韧而行!
Payshent
相互交流,共同进步
展开
-
socket编程之TCP单进程的服务器
今天介绍的是基于ipv4的socket网络编程,我们知道socket API是一层的抽象的网络编程接口,但各网络协议的地址却是各不相同的。 下图是sockaddr数据结构图: ipv4和ipv6的地址格式定义在netinet/in.h中,ipv4地址用sockaddr_in结构体表示,包括16位的端口号和32位的ip地址,ipv6地址用sockaddr_in6表示,包括16位的端口号和128原创 2017-07-02 13:13:24 · 1495 阅读 · 1 评论 -
基于TCP的多进程和多线程服务器
基于多进程的TCP服务器 在上一节我们写了关于TCP的单进程的服务器:http://blog.csdn.net/payshent/article/details/74109613 在里面我们可以单对单的进行两台主机的通信,但是单进程的服务器毕竟来说可服务的对象就很小,所以现在实现一个多进程的服务器。 代码展示: tcp_server.c:#include<stdio.h>#include<原创 2017-07-03 21:07:44 · 1293 阅读 · 0 评论 -
TIME_WAIT状态
前言: 在前面我们讲TCP的三次握手和四次挥手的时候,最后有一个问题就是为什么主动断开连接的一方会进入TIME_WAIT状态。三次握手和四次挥手的链接如下: http://blog.csdn.net/payshent/article/details/73773789 这一节就主要讲讲TIME_WAIT状态。 TIME_WAIT状态是保证重新生成的socket不受到之前残留的延迟重发报文的影响原创 2017-07-05 16:53:31 · 2195 阅读 · 0 评论 -
I/O多路复用select服务器
一、五种I/O模型 linux下的I/O模型分为五种模型:分别是阻塞式I/O、非阻塞式I/O、I/O多路复用(多路转接)、信号驱动I/O(SIGIO)、异步I/O。 这五种I/O由分为两类:一类是同步I/O包括了前面四种,还有一类是异步I/O。 我们把I/O是分成两步的,第一步是“等”,第二步就是数据的搬迁。而对于同步I/O和异步I/O来说它们之间的区别就是同步I/O的数据搬迁工作要自己来完成原创 2017-07-10 09:58:50 · 1251 阅读 · 0 评论 -
端口号的分类
端口 在网络上端口有两种概念,一种是物理意义上的端口,还有一种就是逻辑意义上的端口。 物理端口: 物理端口指的是物理存在的端口,如ASDL,Modem,集线器,交换机、路由器用于连接其他设备的端口,如:RJ-45端口、sc端口等等。 逻辑端口: 逻辑端口指的是逻辑意义上用于区分服务的端口,通过不同的逻辑端口来区分不同的服务。eg:用于TCP/IP协议中的服务端口,用于浏览网页服务的80端口原创 2017-06-18 21:44:57 · 1718 阅读 · 0 评论 -
CRC校验算法
一、什么是CRC校验算法 最近在学网络时在以太网的数据帧的末尾有一个叫CRC校验码的东西,遂不解。于是便一起学习一下,什么是CRC校验码。 CRC就是循环冗余校验码(Cyclic Redundancy Check),是数据通信领域常见的差错校验码,特征是信息字段和校验字段的长度可以任意的选定。 循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,原创 2017-06-19 13:18:44 · 9222 阅读 · 0 评论 -
ARP协议以及获取当前局域下主机MAC地址
一、什么是ARP协议、 ARP被称为地址解析协议,在局域网内通过IP地址查找目标主机的MAC地址。ARP协议是实现IP地址到MAC地址的转化。 二、ARP协议的工作原理 为什么使用ARP协议? 在进行网络通讯的时候源主机知道目标主机的IP地址和端口号,却不知道目标主机的硬件地址。而我们发送的数据包是先被网卡接收然后才处理上层协议,如果接收的数据包的硬件地址与自己的硬件地址不相符合,那么就会被原创 2017-06-24 11:14:23 · 7171 阅读 · 2 评论 -
NAT与代理服务器
什么是NAT? NAT(Network Address Translation,网络地址转换):我们的主机的ip地址是运营商给我们分的ip,也就是在专用网内使用的专用地址,当我们要和因特网上的主机通信的时候路由器会把我们的ip地址改为路由ip。路由ip是全球有效的ip,当拿到我们需要的数据之后路由器再把数据交给我们,也就是说我们要访问外部网络是路由器帮我们拿数据的过程。 NAT网路地址转换是属于原创 2017-06-25 09:31:18 · 2346 阅读 · 0 评论 -
Internet路由之路由表查找算法概述
说明:本文没有源码分析的内容,然而我认为能理解本质比能看懂源码更有用,因为理解了本质之后,你也许就不用再看源码了,你甚至都可以写源码了。这就是Linux内核和Cisco的网站中包含大量文档的原因。引:路由是互联网的一个核心概念,广义的讲,它使分组交换网的每个节点彼此独立,通过路由耦合在一起,甚至在电路交换网中,虚电路的建立也依赖路由,路由就是网络中数据通路的指向标。狭义的讲,路由专指IP路由,它支撑转载 2017-06-25 10:09:49 · 3467 阅读 · 0 评论 -
路由表生成算法
路由: 数据包从源地址到目的地址所经过的路径由一系列的节点组成。 路由节点: 一个具有路由能⼒力的主机或路由器,它维护一张路由表,通过查询路由表来决定向哪个接⼜口发送数据包。 路由表: 由很多路由条目组成,每个条目都指明去往某个网络的数据包应该经由哪个接收和发送,其中最后一个是缺省路由条目。 路由条目: 路由表中的每一行,每个条目主要由网络地址、子网掩码、下一跳地址、发送接收四部分原创 2017-06-25 15:27:12 · 1581 阅读 · 0 评论 -
URG与PSH的区别
我们先看一张图是TCP的段格式: 我们看到有6位标志位,其中今天主要来看的就是URG与PSH。 URG标志位: URG(紧急位)是表示紧急指针是否有效,当URG为1的时候就表示紧急指针是有效的。紧急指针通常情况下是无效的,当设置为有效的时候就表示数据要优先处理。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP的紧急方式是发送端向另一端发送紧急数据的一原创 2017-06-26 09:52:26 · 3446 阅读 · 0 评论 -
TCP协议中的三次握手与四次挥手
前言: TCP的连接与释放过程: 首先就是客户端主动发起连接、发送请求,然后服务器端响应请求,最后客户端主动关闭连接。两条竖线表示的是通讯的两端(client与server),从上到下表示的是时间的先后顺序,因为数据从一端到另外一端是需要时间的,所以是斜线。下面便分别介绍链接的建立与连接的释放。 什么是三次握手? 我们先来看三次握手建立连接的图: 第一次握手: 客户端先发送一个S原创 2017-06-27 11:00:56 · 2285 阅读 · 0 评论