개발냥발/CS (Computer Science)🖥️

🔥[혼공네트] 1주차_01장 : 컴퓨터 네트워크 시작하기

승이버섯 2024. 7. 7. 14:23

 
ㅎㅏ...혼공 스터디,,... 넘나 오랜만인 것...⭐(아련
사실 재작년에 혼공컴운 스터디(9기)를 얼레벌레 마친 뒤로, 혼공족 스터디와 족장님에게 정이 들어버린 나는...
그 다음해에 혼공 SQL과 혼공 자바스크립트 무려 두권을 아주 호기롭게 도전했다가 중간에 지쳐버려서 중도 포기ㅠㅋㅋㅋ를 한 전적이 있어서 그런지...(역시 두권은 안된다^^)
그래서 혼공스터디에 아쉬움과 애정과..하여튼 그런 복잡미묘한 감정이 남아있었고... 게다가 혼공 네트워크 신간이 나온 소식을 알자마자 개인적으로 냅다 구입해서 안그래도 쫌쫌따리로 조금씩 공부하고 있었는데...
때마침!!!!  혼공 스터디 12기 모집 공고를 보자마자 아주 기가막힌 타이밍이라고 생각되어서 바로 지원을 했다지요~~
 
아무래도 네트워크를 다루는 책이다보니 컴퓨터 과학적인 내용들과 설명들이 적지 않아서, 그걸 다 적는 것도 무리고, 글도 너무 길어질 것 같아서,
그래서 혼공컴운 스터디했을 때처럼 공부할때는 이해를 우선순위로 하여 깊게 공부하되,
블로그에는 주로 각 챕터와 그에 대한 소제목들을 위주로 하여, 내가 공부한 내용 중 핵심이라고 생각되는 부분만 요약해서 글을 쓰고, 필수 과제 정도만 자세히 다루려한다!
 
그럼 혼공네트워크 1장 스따뚜.!💜🍀
 


 

1장 컴퓨터 네트워크 시작하기

01. 컴퓨터 네트워크를 알아야하는 이유

  • 네트워크의 네트워크, 인터넷
    • 네트워크는 여러 컴퓨터 시스템을 연결하여 자원을 공유하는 시스템이다. 인터넷은 이러한 네트워크들의 집합체로, 전 세계적으로 연결된 거대한 네트워크다.
    • 인터넷은 정보를 공유하고, 다양한 서비스를 제공하며, 커뮤니케이션을 가능하게 한다. 이는 현대 사회에서 필수적인 인프라다.
  • 개발자가 컴퓨터 네트워크를 알아야 하는 이유
    1. 프로그램을 만드는 업무에서 네트워크 지식을 활용하는 경우
      • 소프트웨어 개발 시, 클라이언트와 서버 간의 데이터 전송, API 통신, 원격 데이터베이스 접속 등이 필요하다.
      • 네트워크 프로그래밍 기술을 활용하여 더 나은 성능과 보안을 구현할 수 있다.
    2. 프로그램을 유지 보수하는 업무에서 네트워크 지식을 활용하는 경우 
      • 네트워크 문제를 진단하고 해결하는 능력은 유지보수 시 매우 중요하다.
      • 성능 최적화와 보안 문제 해결을 위해 네트워크의 작동 원리를 이해해야 한다.

 
 

02. 네트워크 거시적으로 살펴보기

  • 네트워크의 기본 구조
    1. 호스트
      • 네트워크에 연결된 장치로, 데이터 송수신의 주체다.
      • 컴퓨터, 서버, 스마트폰, IoT 장비 등이 호스트에 해당한다.
    2. 네트워크 장비 
      • 라우터: 네트워크 간의 데이터를 전달한다.
      • 스위치: 네트워크 내의 여러 장치를 연결하고 데이터를 전달한다.
      • 허브: 여러 네트워크 장치를 연결하지만, 스위치보다 효율성이 떨어진다.
    3. 통신 매체 
      • 유선 매체: 이더넷 케이블, 광섬유 등이 포함된다.
      • 무선 매체: Wi-Fi, 블루투스, 셀룰러 네트워크 등이 포함된다.
    4. 메시지 
      • 네트워크에서의 메시지는 데이터를 전달하는 단위이다.
      • 메시지 형식과 프로토콜을 통해 데이터가 올바르게 전송된다.
  • 범위에 따른 네트워크 분류 
    1. LAN (Local Area Network) 
      • 사무실, 학교 등 제한된 지역 내에서 사용하는 네트워크다.
      • 빠른 데이터 전송 속도와 높은 보안 수준을 제공한다.
    2. WAN (Wide Area Network) 
      • 도시, 국가, 대륙 등 넓은 지역을 연결하는 네트워크다.
      • 인터넷이 대표적인 WAN의 예시다.
  • 메시지 교환 방식에 따른 네트워크 분류 
    1. 회선 교환 방식 
      • 두 지점 간에 고정된 경로를 설정하여 데이터를 전송한다.
      • 전화 네트워크에서 사용되며, 안정적이지만 비효율적일 수 있다.
    2. 패킷 교환 방식 
      • 데이터를 작은 패킷으로 나누어 전송하며, 각 패킷은 독립적으로 이동한다.
      • 인터넷에서 주로 사용되며, 효율적이고 유연하다.
  • 주소와 송수신지 유형에 따른 전송 방식 
    1. 유니캐스트 (Unicast)
      • 한 송신지에서 하나의 수신자로 데이터를 전송한다.
    2. 멀티캐스트 (Multicast)
      • 한 송신지에서 특정 그룹의 수신자들에게 데이터를 전송한다.
    3. 브로드캐스트 (Broadcast)
      • 한 송신지에서 네트워크 내 모든 수신자에게 데이터를 전송한다.

 
 

03. 네트워크 미시적으로 살펴보기

  • 프로토콜 
    • 프로토콜은 네트워크에서 데이터를 교환하기 위한 규칙과 절차를 정의한다. 
      1. HTTP (HyperText Transfer Protocol)
        • 웹 페이지를 전송하는 데 사용되는 프로토콜이다.
      2. FTP (File Transfer Protocol)
        • 파일을 전송하는 데 사용되는 프로토콜이다.
      3. TCP/IP (Transmission Control Protocol/Internet Protocol)
        • 인터넷의 기본 프로토콜로, 데이터 전송의 신뢰성과 효율성을 보장한다.
  • 네트워크 참조 모델 
    • OSI 모델 
      • 네트워크 통신을 7계층으로 나누어 설명한다: 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층.
      • 각 계층은 특정 기능을 담당하며, 서로 독립적으로 작동한다.
    • TCP/IP 모델 
      • OSI 모델을 단순화하여 4계층으로 설명한다: 네트워크 인터페이스, 인터넷, 전송, 응용 계층.
      • 인터넷 프로토콜 스위트라고도 하며, 실제 인터넷에서 사용된다.
    • 💜 [필수 과제] OSI 모델 및 TCP/IP 모델 차이점을 정리하고, 이를 바탕으로 네트워크 계층 구조를 작성해 보기(p. 62 참조)
    • OSI 모델과 TCP/IP 모델의 주요 차이점
      1. 계층 수
        • OSI 모델은 7계층으로 구성, TCP/IP 모델은 4계층으로 구성된다.
        • TCP/IP 모델은 OSI 모델의 여러 계층을 통합하여 실용성을 높인다.
      2. 계층 기능
        • OSI 모델은 각 계층의 역할이 명확하게 정의된다.
        • TCP/IP 모델은 응용, 표현, 세션 계층의 기능을 통합하여 응용 계층에서 처리한다.
      3. 사용 목적
        • OSI 모델은 이론적 모델로 네트워크 구조를 이해하고 설명하는 데 도움을 준다.
        • TCP/IP 모델은 실제 네트워크에서 널리 사용되는 프로토콜 스위트로 인터넷의 기본 구조를 형성한다.
      4. 프로토콜
        • OSI 모델은 특정 프로토콜에 종속되지 않는다.
        • TCP/IP 모델은 TCP/IP 프로토콜 스위트를 기반으로 한다.
      5. 실제 사용
        • OSI 모델은 네트워크 교육 및 학습에 주로 사용된다.
        • TCP/IP 모델은 실제 네트워크 구현 및 운영에 사용된다.
      - OSI 모델은 개념적으로 네트워크 계층을 세분화하여 설명하는 데 유용하며, TCP/IP 모델은 실제 인터넷과 네트워크 환경에서 구현되는 프로토콜 구조를 이해하는 데 유용하다.

    • 네트워크 계층 구조 작성해보기
     

 

  • 캡슐화와 역캡슐화 
    • 캡슐화 
      • 데이터가 전송될 때, 각 계층에서 데이터에 헤더를 추가하여 다음 계층으로 전달한다.
      • 예를 들어, 응용 계층의 데이터는 전송 계층에서 세그먼트로 캡슐화되고, 네트워크 계층에서 패킷으로 캡슐화된다.
    • 역캡슐화 
      • 수신 측에서 데이터에서 헤더를 제거하고 원본 데이터를 복원한다.
      • 패킷은 네트워크 계층에서 역캡슐화되어 전송 계층의 세그먼트가 되고, 최종적으로 응용 계층의 데이터가 된다.
  • PDU 
    • 프로토콜 데이터 유닛(PDU)은 각 네트워크 계층에서 사용하는 데이터의 단위이다.
    • 각 계층의 PDU는 다른 명칭을 가지며, 예를 들어, 전송 계층에서는 세그먼트, 네트워크 계층에서는 패킷이라고 불린다.
  • 트래픽과 네트워크 성능 지표
    1. 처리율 (Throughput)
      • 네트워크가 일정 시간 동안 처리할 수 있는 데이터의 양을 나타낸다.
      • 높은 처리율은 네트워크 성능을 측정하는 중요한 지표다.
    2. 대역폭 (Bandwidth) 
      • 네트워크가 데이터를 전송할 수 있는 최대 용량이다.
      • 대역폭이 높을수록 더 많은 데이터를 빠르게 전송할 수 있다.
    3. 패킷 손실 (Packet Loss) 
      • 전송 중 데이터 패킷이 손실되는 현상이다.
      • 패킷 손실은 네트워크 성능에 큰 영향을 미치며, 데이터 재전송이 필요하게 만든다.

 


 
💜 [추가 숙제] Ch.01(01-1) 확인 문제 2번(p.35), (01-3) 확인 문제 2번(p.73) 풀고 설명하기
 
Ch.01(01-1) 확인 문제 2번 (p.35)
: 네트워크에 대한 설명으로 옳지 않은 것을 골라 보세요.
네트워크에 대한 이해는 프로그램을 만드는 과정에 도움을 주지 않습니다.
② 네트워크에 대한 이해는 유지보수하는 과정에 도움을 줄 수 있습니다.
③ 많은 프로그램이 네트워크를 통해 다른 장비와 상호 작용하며 실행됩니다.
④ 채용 시 네트워크에 대한 지식을 강조하거나 검증하는 기업이 존재합니다.
 
* 설명 : 컴퓨터 네트워크에 대한 이해는 프로그램을 만드는 과정에 당연히! 도움을 줄 수 있습니다.
 
 
(01-3) 확인 문제 2번(p.73)
: 네트워크 참조 모델에 대한 설명으로 옳지 않은 것을 골라 보세요.
OSI 모델은 7개의 계층으로 통신 과정을 구분합니다. 
TCP/IP 모델은 3개의 계층으로 통신 과정을 구분합니다.
③ 네트워크 참조 모델은 네트워크 구성과 설계를 용이하게 합니다.
④ 네트워크 참조 모델은 네트워크 문제 진단과 해결을 용이하게 합니다.
 
* 설명 : TCP/IP 모델은 통신 과정을 4개의 계층(네트워크 인터페이스 계층, 인터넷 계층, 전송 계층, 응용 계층)으로 표현합니다.