计算机网络
文章平均质量分 58
xy913741894
这个作者很懒,什么都没留下…
展开
-
计算机网络基础知识和体系结构
现代社会,网络已经和水,电一样成为我们的不可或缺的日常需求了,可以说网络无处不在。作为一名用户,只需要学会如何使用网络即可,而作为一名计算机专业的学生,一名程序员有必要去深入了解其中原理。因此,本章主要会介绍一些计算机网络的基本定义,网络的体系结构等,旨在学习计算机网络的基本概念,为接下来的网络编程打下良好的基础。之前在大二在学过计算机网络,但是时间太久了很多已经都忘了,因此这篇博客也是对我自己知识原创 2017-06-17 21:53:46 · 15632 阅读 · 0 评论 -
TCP协议报文格式和三次握手,四次挥手
源端口和目的端口: 用来表示发送主机的进程和接收主机的进程,实现TCP复用和分用序号: TCP是面向字节流的,TCP连接中的每个字节都按序编号,序号字段又叫报文段序号,指的是当前报文段的第一个字节的序号,比如一报文段的序号字段为301,数据有100字节,则序号为301,下一个报文段应该从401开始,序号为401确认号:期望收到下一个报文段的第一个字节序号,比如A发送一个报文段序号为501,数据长度为原创 2017-06-27 22:09:12 · 1587 阅读 · 0 评论 -
小型tcp服务器--select
在前面的博客中,我用多线程,多进程编写了一个小型服务器,之所以会使用多进程/多线程是因为服务器往往需要服务多个客户端,提高并发性和效率是十分重要的,然而缺点是系统开销较大,系统需要创建多个进程/线程。然而,现实生活中,一个程序,或者一个网络服务器的真正的性能瓶颈往往在IO,事实上,网络IO进行读写数据之时,往往因为就绪条件不满足而出于等待的状态,这大大就降低了我们性能。对于网络IO,可分为两步:原创 2017-06-29 21:18:25 · 481 阅读 · 0 评论 -
CRC校验
网上关于CRC校验的文章已经有不少了,但是我总觉得有些繁琐,其实对于大部分人只需要了解CRC是做什么的,原理是什么即可。因此,我想用尽量简短的篇幅来向大家介绍CRC。关于CRC,我只介绍以下几点:用来做什么的基本的原理给出实例来帮助大家理解,毕竟光讲一堆原理太抽象。CRC是用来做什么的?最常见的用途就是差错检测。一般在计算机网络的书籍都会讲述CRC,其实说白了就是现实的网络十分复杂,从一个主原创 2017-06-26 21:09:48 · 1207 阅读 · 0 评论 -
了解网络通信中的端口
熟悉TCP/UDP协议的同学可能都知道端口这一词,无论是TCP还是UDP报文都有源端口和目的端口字段,为什么会需要这些字段呢?这是因为,对于网络之间的通信,本质而言就是应用进程之间的通信,而IP协议只提供主机与主机之间的通信,可是一个主机有那么多进程,如何区别是哪个进程通信呢?端口就起着标识的作用。通过IP:port这一对套接字就能保证不同主机上进程之间的通信,我们后面所学的套接字编程就要使用到端口原创 2017-06-27 19:49:59 · 1912 阅读 · 1 评论 -
UDP协议以及与TCP区别
UDP和TCP协议都属于传输层协议,负责完成网络中端到端之间的通信,其中UDP协议相对比较简单,但是有些琐碎的点还是值得总结的,另外一个UDP/TCP的区别也算是一个高频考点了,因此,本文主要会总结下UDP协议的注意点,以及和TCP的区别,而TCP内容涉及太多了,会另外再开一篇博客总结的。谈协议,我们直接先看UDP报文是怎么样的,根据图来学习理解UDP。UDP的首部一共是8个字节,分别是源端口,目的原创 2017-06-27 20:24:51 · 552 阅读 · 0 评论 -
linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)
一、TCP常用的端口扫描方式有以下三种:1.connect扫描我们知道,常见的TCP的socket实现过程为更本质的连接和结束的过程是如下这个样子的:从上面两个图我们可以看出来目标主机的一个端口如果是监听状态(LISTENING或者LINSTEN),那么当我connect目标主机时就能成功,否则说明端口是关闭的。优点: 编程简单,是需要转载 2017-08-16 17:01:39 · 7451 阅读 · 0 评论