程序员必学的计算机网络知识

写在前面的话: 大三了,目前在搞web开发的学习,TCP/IP,htttp/https的重要性不言而喻,我决定重搞一下大一已经学过的计算机网络,梳理一下计算机网络中的重点。学习计算机网络,可能有点枯燥难学,但是你只要带着一个问题,当我们用聊天软件跟朋友聊天时,信息是怎么到达朋友的计算机的?带着这个疑问,去串通整个计算机网络的知识,这样会很不错。看完我的系列文章,或许你心中将有答案!

我是梦阳辰,未来我陪你一起成长。 这是《程序员必学的计算机网络知识》总篇,限于篇幅较长,将各层次分篇进行讲述。点击下文的链接可以链接到各文!

概述

1.为什么要学习计算机网络?
1)学好计算机网络,我们可以知道,计算机网络是如何实现的,扩展我们的知识面。

2)学好计算机网络更有利于我们的网络编程

3)面试的时候,大厂必问计算机网络知识点。如:TCP和UDP的区别?TCP为什么三次握手,四次挥手?…

2.什么是计算机网络?
计算机网络是通信线路和通信设备将分布在不同地点的具有独立功能的多个计算机系统互相连接起来,在网络软件的支持下实现彼此之间的数据通信和资源共享的系统。 
在这里插入图片描述

计算机之间如何实现通信的?

当我们使用QQ应用跟朋友进行通信的时候。它是怎么实现的呢?
首先我们的电脑有很多应用,我们用QQ发送数据给朋友的电脑上,但是如何将这些数据构造成报文呢?在这些报文中的各个字段的含义是什么?进程何时发送这些报文?

这些问题将我们带进应用层协议的范围 ,应用层协议 (application-layer protocol) 定义了运行在不同端系统上的应用程序进程如何相互传递报文。

那什么是进程,什么是协议呢?

协议是:控制两个对等实体(发送或接收信息的硬件或软件进程)进行通信规则的集合。

关于进程请看这篇文章:java多线程编程从入门到卓越(超详细总结)
就算应用程序知道如何传递报文,何时传递报文。但是如何让接受方电脑知道我发送的消息是给QQ这个进程的而不是给微信或其它应用进程的呢?这时运输层来帮我们解决这个问题。运输层提供进程与进程之间的逻辑通信。也就是说只要把应用层报文交给下面的运输层,运输层就可以把这报文传到对方的运输层。

那么问题又来了如何让自己发送的消息发送给特定的主机(计算机)呢?这时网络层帮我们解决了这个问题(IP数据报的首部明确标志了这两台主机的IP地址)。网络层为主机之间提供逻辑通信。

但是我们知道数据从源主机到目的主机需要在构成端到端通信路径的各段链路上传输。那么数据是如何在构成端到端通信路径的各段链路上传输的呢?当传输过程中出现差错该怎么处理呢?

假如直接采用物理线路传输,而不在其基础上进行相关处理的话,就无法实现数据的高质量传输。

正是因为有了数据链路层的流量控制,差错处理等功能,保证了数据在物理线路上的高质量传输,同时网络层也不需要关心物理层采用了哪些传输介质。

物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层确定与传输媒体的接口一些特性。

我们下面将采用自顶向下的方式讲述计算机网络的知识点。
由于篇幅较长,每个层我将用一篇文章来讲解。

01.应用层

程序员必学的计算机网络知识(应用层)

02.运输层

程序员必学的计算机网络知识(运输层)

03.网络层

程序员必学的计算机网络知识(网络层)

04.数据链路层

程序员必学的计算机网络知识(数据链路层)

05.物理层

程序员必学的计算机网络知识(物理层)

06.计算机网络概述

计算机网络概述(让你轻松了解网络)
参考文献:
计算机网络第7版(谢希仁)

计算机网络自顶向下

b站:韩立刚版(计算机网络)

b站:王道考研(计算机网络)
在这里插入图片描述

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘习参考,提供代码+题型等资料
### 回答1: 《程序员知的硬核知识大全》是一本面向程序员的综合性知识手册,涵盖了各个领域的关键知识点,旨在帮助程序员提升技术水平和解决实际问题。该书以PDF格式出版,便于读者在电脑、手机等设备上随时查阅。 该书内容包括以下几个方面的硬核知识: 1. 编程语言知识:介绍了主流的编程语言,如Java、C++、Python等,包括语法、数据结构、算法等方面的内容。 2. 操作系统和计算机原理:详细介绍了操作系统的基本原理和常见问题解决方法,以及计算机组成原理和计算机网络等相关知识。 3. 数据库和存储知识:讲解了数据库设计和管理的基本原理,介绍了关系型数据库如MySQL和非关系型数据库如MongoDB等的使用方法和优化技巧。 4. 网站和网络开发知识:包括Web开发的基本原理、前后端开发技术、网络安全和性能优化等方面的内容。 5. 软件工程和开发方法论:介绍了软件工程的基本概念和常用开发方法,包括敏捷开发、测试驱动开发和持续集成等。 6. 设计模式和架构知识:详细介绍了常用的设计模式和软件架构,帮助程序员设计可维护、可扩展和高效的软件系统。 除了以上几个方面的内容,该书还涵盖了其他与程序员工作密切相关的技术和知识,如版本控制、软件部署、性能调优等。《程序员知的硬核知识大全》适合本科或者有一定编程经验的程序员阅读,对于提高技术实力和职业发展都有很大帮助。 ### 回答2: "程序员知的硬核知识大全 pdf"是一份提供程序员知识的电子书,PDF格式可以方便地在各种设备上阅读。这本书包含了各个方面的硬核知识,帮助程序员提高技术能力和解决问题的能力。 这本电子书的内容包括了数据结构和算法,编程语言,操作系统,网络通信,数据库管理等各方面的知识。对于程序员而言,这些都是非常重要的基础知识,能够帮助他们理解和设计高效的程序。 在数据结构和算法部分,程序员习到各种基础的数据结构,如数组、链表、栈和队列,以及常见的算法,如排序和搜索算法。这些知识对于程序的效率和性能优化至关重要。 编程语言部分将介绍多种编程语言,如C、C++、Java和Python等。这些语言在不同的领域有各自的优点和适用范围,程序员需要了解它们的特点和使用方法,以便在开发项目时选择合适的语言。 操作系统部分将深入讲解操作系统的原理和设计。程序员将了解到进程管理、内存管理、文件系统等重要概念,这些对于编写具有高可靠性和高性能的程序至关重要。 网络通信部分将介绍计算机网络的基本原理和常见的协议,如TCP/IP和HTTP等。程序员需要理解网络通信的基础知识,以便与其他系统进行数据交换和通信。 数据库管理部分将详细介绍关系型数据库和非关系型数据库的原理和使用方法。程序员需要了解数据库的设计和优化,以提高数据的存储和检索效率。 总之,这本电子书涵盖了程序员备的硬核知识,对于提高他们的技术能力和解决问题的能力非常有帮助。 ### 回答3: 《程序员知的硬核知识大全》是一本汇集了程序员备的核心知识的书籍,可以帮助程序员提升自己的技术水平。这本书涵盖了计算机的各个领域和重要概念,包括数据结构与算法、操作系统、编程语言、网络通信、数据库、Web开发、软件工程等。 在数据结构与算法部分,书中介绍了常用的数据结构如链表、栈、队列以及各种排序和搜索算法,帮助程序员理解和应用这些经典的算法。在操作系统方面,书中讲解了进程、线程、内存管理、文件系统等重要概念,帮助程序员深入了解计算机系统的工作原理。 在编程语言方面,书中列举了多种编程语言的特性和应用场景,如C++、Java、Python等,有助于程序员选择适合自己的编程语言并掌握其特性。在网络通信部分,书中介绍了TCP/IP协议、HTTP协议等重要的网络通信协议和技术,帮助程序员理解网络通信的基本原理。 此外,书中还介绍了数据库的相关知识,包括关系数据库、SQL语言、数据备份与恢复等内容,有助于程序员设计和管理数据库。在Web开发方面,书中介绍了前端开发、后端开发、服务器部署等关键技术,帮助程序员构建高效、安全的Web应用程序。 最后,在软件工程方面,书中讲解了软件开发的生命周期、需求分析、设计模式、测试和持续集成等内容,有助于程序员理解和掌握软件开发过程中的重要环节。 总的来说,这本《程序员知的硬核知识大全》提供了一站式的习资料,涵盖了程序员备的核心知识,可以帮助程序员系统地习和应用这些知识,提升自己的技术能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值