Network

네트워크 기본 개념 요약 (OSI 7계층) (책 『모두의 네트워크』)

15호의 개발자 2021. 12. 20. 16:46
반응형
본문의 내용은 책 『모두의 네트워크 (10일 만에 배우는 네트워크 기초) _ 미즈구치 카츠야』에서 발췌하였습니다.

 

 

1장. 네트워크 첫걸음

01. 네트워크의 구조

  • 컴퓨터 네트워크: 컴퓨터간의 연결
  • 인터넷: 전 세계의 큰 네트워크부터 작은 네트워크까지 연결하는 거대한 네트워크
  • 패킷: 컴퓨터간에 데이터를 주고받을 때 네트워크를 통해 흘러가는 작은 데이터 조각
    큰 데이터는 작은 패킷으로 분할한다.

02. 정보의 양을 나타내는 단위

  • 비트(bit): 정보를 나타내는 최소 단위. 8 bit = 1 byte
  • 문자 코드: 숫자와 문자의 대응표 (ex. ASCII 코드)

04. 가정에서 하는 랜 구성

  1. 인터넷 서비스 제공자(ISP)와 인터넷 회선(ex. 광랜)을 결정하고 계약한다.
  2. 인터넷 서비스 제공자와 인터넷 공유기로 접속한다.
  3. 접속 방식에는 유선 랜 방식과 무선 랜 방식이 있다.

05. 회사에서 하는 랜 구성

  • DMZ: 외부에 공개하기 위한 네트워크
  • 외부에 공개하는 서버: 웹 서버, DNS 서버, 메일 서버, 등..
  • 회사의 서버는 온프레미스 or 클라우드로 운영된다.
  • 각 서버나 컴퓨터는 스위치나 무선 랜 기능을 사용하여 사내 랜에 접속하다.

 

 

2장. 네트워크의 기본 규칙

06. 네트워크의 규칙

  • 프로토콜: 통신하기 위한 규칙

07. OSI 모델과 TCP/IP 모델

  • OSI 모델(OSI 7계층): 국제표준화기구(ISO)에서 제정한 모델, Open Systems Interconnection Reference Model
    1. 응용 계층
    2. 표현 계층
    3. 세션 계층
    4. 전송 계층
    5. 네트워크 계층
    6. 데이터 링크 계층
    7. 물리 계층
  • TCP/IP 모델: 현재는 OSI 모델이 아닌 ICP/IP 모델을 사용
    1. 응용 계층 (OSI의 응용/표현/세션 계층)
    2. 전송 계층
    3. 인터넷 계층 (OSI의 네트워크 계층)
    4. 네트워크 접속 계층 (OSI의 데이터 링크/물리 계층)

08. 캡슐화와 역캡슐화

  • 헤더(Header): 데이터를 보낼 때, 필요한 정보를 데이터에 추가해서 보내는데, 이러한 정보를 헤더라고 함
  • 캡슐화: 데이터를 보낼 때, 각 계층에서 헤더(데이터 링크 계층의 트레일러도 포함)를 붙여 나가는 것
    역캡슐화: 데이터를 받을 때, 각 계층에서 헤더(데이터 링크 계층의 트레일러도 포함)를 제거해 나가는 것
  • 데이터 송신 측의 캡슐화 순서: 응용 → 전송 → 네트워크 → 데이터 링크 계층
    데이터 수신 측의 역캡슐화 순서: 데이터 링크 → 네트워크 → 전송 → 응용 계층
  • 송신 측의 데이터 링크 계층에서 만들어진 데이터가 전기 신호로 변환되어 수신 측에 전송된다.
    (메인보드에 포함되어 있는 랜 카드가 데이터를 전기 신호로 변환해준다.)

 

 

3장. 물리 계층: 데이터를 전기 신호로 변환하기

09. 물리 계층의 역할과 랜 카드의 구조

  • 전기 신호
    • 아날로그 신호: 전화 회선, 라디오 방송
    • 디지털 신호
  • 네트워크를 통해 상대방에게 데이터를 전송할 때, 0과 1의 비트열은 전기 신호로 변환되어 전송된다. 상대방이 받은 전기 신호는 다시 0과 1의 비트열로 복원된다.

10. 케이블의 종류와 구조

  • 네트워크 전송 매체 종류
    • 무선: 라디오파, 마이크로파, 적외선, 등 ..
    • 유선
      • 광케이블 
      • 트위스트 페어 케이블 (=랜 케이블)
        - RJ-45: 랜 케이블의 양쪽 끝의 커넥터 (랜선 꽂을 때 '딸깍' 소리나는 것)
        • UTP 케이블 (Unshielded Twist Pair)
          - 실드로 보호되어 있지 않아 노이즈의 영향을 쉽게 받는다.
          - 구리 선 여덟 개 중 네 개만 사용한다. 
          • 다이렉트 케이블
            - 구리 선 여덟 개를 같은 순서로 커넥터에 연결
            - 컴퓨터와 스위치를 연결할 때 사용
          • 크로스 케이블
            - 구리 선 여덟 개 중 한 쪽 커넥터의 1번, 2번에 연결되는 구리 선을 다른 쪽 커넥터의 3번, 6번에 연결
            - 컴퓨터 간에 직접 랜 케이블로 연결할 때 사용
        • STP 케이블 (Shielded Twist Pair)
          - 실드로 보호되어 있어 노이즈의 영향을 매우 적게 받는다.

11. 리피터와 허브의 구조

  • 리피터(repeater): 네트워크를 중계하기 위한 장비. 요즘은 리피터를 안 쓴다.
  • 허브(hub): 전기 신호를 정형하고 증폭하는 기능. = 리피터 허브
    리피터와 허브는 받은 데이터를 보내는 대상뿐만 아니라 모든 포트에 전송한다.
    허브는 스스로 판단할 수 없기 때문에 '더미 허브'라고도 부른다.

 

 

4장. 데이터 링크 계층: 랜에서 데이터 전송하기

12. 데이터 링크 계층의 역할과 이더넷

  • 이더넷(Ethernet)
    - 랜에서 데이터를 정상으로 주고받기 위한 규칙
    - 데이터 충돌을 막기 위한 규칙으로, CSMA/CD방식을 사용한다.
    • CSMA/CD
      - CS (Carrier Sense): 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는지 확인하는 규칙
      - MA (Multiple Access): 케이블에 데이터가 흐르고 있지 않으면 데이터를 보내도 된다는 규칙
      - CD (with Collision Detection): 충돌이 발생하고 있는지 확인하는 규칙

13. MAC 주소의 구조

  • MAC 주소: 48비트 숫자로 구성. 앞 24비트는 랜 카드 제조사 번호, 뒤 24비트는 제조사가 랜 카드에 붙인 일련번호
  • 이더넷 헤더: 총 14바이트로 구성. 목적지 MAC 주소(6바이트) - 출발지 MAC 주소(6바이트) - 유형 (2바이트)
  • 트레일러: 데이터 링크 계층에서 데이터 뒤에 추가하는 것

14. 스위치의 구조

  • 스위치
    - 데이터 링크 계층에서 동작하며, '레이어 2 스위치' 또는 '스위칭 허브'라고도 부른다.
    - 스위치에는 MAC 주소 테이블이 있다.
    • MAC 주소 테이블: 스위치의 포트 번호와 그 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터베이스
    • 플러딩(flooding): 스위치가 수신 포트 이외의 모든 포트에서 데이터를 송신하는 것
    • MAC 주소 필터링: 스위치에서 MAC 주소를 기준으로 출발지를 선택하는 것

15. 데이터가 케이블에서 충돌하지 않는 구조

  • 전이중 통신 방식(Full Duplex)
    - 데이터 송신/수신을 동시에 수행
  • 반이중 통신 방식(Half Duplex)
    - 회선 한 개로 송신과 수신을 번갈아가며 수행
  • 충돌 도메인
    - 데이터 충돌이 발생하고 그 충돌 영향이 미치는 범위

16. 이더넷의 종류와 특징

  • 주요 이더넷 규격: 10BASE5, 10BASE2, 10BASE-T, 100BASE-TX, 1000BASE-T, 10GBASE-T

 

 

5장. 네트워크 계층: 목적지에 데이터 전달하기

17. 네트워크 계층의 역할

  • 서로 다른 네트워크 간에 통신을 하려면 라우터가 필요하다.
  • 랜 안에서는 MAC 주소만으로도 통신 가능하지만, 네트워크 간에 통신을 하려면 IP 주소가 필요하다.
  • 대표 프로토콜: IP
  • 네트워크 계층에서는 캡슐화할 때 IP 헤더를 추가한다.

18. IP 주소의 구조

  • IP 주소
    - 데이터를 다른 네트워크로 전달할 때 필요하다.
    - 인터넷 서비스 공급자에게 할당받을 수 있다.
    - IPv4는 32비트로, IPv6는 128비트로 구성되어 있다.
    - 종류: 공인 IP 주소, 사설 IP 주소
    - IP 주소는 네트워크 ID와 호스트 ID로 나누어지며, 서브넷 마스크로 구별 가능하다.

19. IP 주소의 클래스 구조

  • A~E 클래스로 나누어지며, 일반적으로 A~C 클래스를 사용한다.
  • 클래스별 호스트 수
    - A 클래스: 16,777,214대
    - B 클래스: 65,534대
    - C 클래스: 254대

20. 네트워크 주소와 브로드캐스트 주소의 구조

  • 네트워크 주소와 브로드캐스트 주소는 자신의 IP 주소로 설정하면 안 되며, 컴퓨터에서 설정할 수 없다.

21. 서브넷의 구조

  • 서브넷
    - 분할된 네트워크
  • 서브넷팅
    - 네트워크를 분할하는 것
    - 서브넷팅되면 구성이 '네트워크 ID + 호스트 ID'에서 '네트워크 ID + 서브넷 ID + 호스트 ID'로 변경된다.
  • 서브넷 마스크
    - 네트워크 주소와 호스트 주소를 식별하는 값
    - 클래스별 서브넷 마스크 (괄호 안은 프리픽스 표기법)
      - A 클래스: 255.0.0.0 (/8)
      - B 클래스: 255.255.0.0 (/16)
      - C 클래스: 255.255.255.0 (/24)

22. 라우터의 구조

  • 라우터 vs 스위치/허브
    - 라우터: 네트워크를 분할할 수 있다.
    - 스위치(레이어2)/허브: 네트워크를 분할할 수 없다.
  • 서로 다른 네트워크와 통신하려면 라우터가 필요하다.
  • 다른 네트워크로 데이터를 전송하려면 기본 게이트웨이를 설정해야 한다.
  • 라우팅
    - 경로를 선택하고 목적지 IP 주소까지 어떻게 데이터를 전달할지 결정하는 것
    - 경로 정보를 기반으로 현재 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 방식이다.
    - 라우팅 테이블: 라우터에 있으며, 경로 정보가 등록되어 있다.
    - 라우팅 프로토콜: 라우터 간에 라우팅 정보를 서로 교환하기 위한 프로토콜

 

 

6장. 전송 계층: 신뢰할 수 있는 데이터 전송하기

23. 전송 계층의 역할

  • 데이터를 제대로 전달하는 역할 (+ 오류를 점검하는 기능)
  • 전소된 데이터의 목적지가 어떤 애플리케이션인지 확인
  • 연결형 통신
    - 신뢰할 수 있고 정확하게 데이터를 전송하는 통신 방식
  • 비연결형 통신
    - 신뢰성을 보장하지 않지만 효율적으로 데이터를 전송하는 통신 방식
    - ex. 동영상 시청 (신뢰할 수 있고 정확한 데이터 전송보다 빠른 전송이 더 중요)

24. TCP의 구조

  • 전송 계층에서 TCP 헤더가 붙는다.
    - 세그먼트: TCP 헤더가 붙은 데이터
  • 코드 비트
    - 연결(connection)을 확립하기 위해 TCP 헤더에 있는 코드 비트를 사용한다.
    - SYN: synchronize sequence numbers, 연결 요청
      ACK: acknowledgment, 연결 응답
      FIN: final?, TCP 세션 연결 종료
  • 3-way Handshake (3-way 핸드셰이크)
    - 연결 확립을 위해 패킷 교환을 세 번 하는 것
    - 연결 확립할 때는 SYN, ACK를 사용, 연결 종료할 때는 FIN, ACK를 사용

25. 일련번호와 확인 응답 번호의 구조

  • 3-way 핸드셰이크 이후 데이터를 전송할 때는 TCP 헤더의 일련번호와 확인 응답 번호가 사용된다.
  • 재전송 제어: 데이터를 재전송하는 것
  • 버퍼
    - 수신한 세그먼트(데이터)를 일시적으로 젖아하는 장소
    - 오버플로: 데이터 크기가 버퍼 크기를 넘어서는 것
    - 윈도우 크기: 버퍼 용량의 크기

26. 포트 번호의 구조

  • 포트 번호는 어떤 애플리케이션인지 구분하는 역할
  • 0~65535번을 사용
    - 0~1023번: 잘 알려진 포트(well-known ports)
    - 1025번 이후: 랜덤 포트

27. UDP의 구조

  • UDP
    - 데이터를 효율적이고 빠르게 보낼 때 사용되는 프로토콜
    - UDP는 UDP 헤더가 있지만 TCP 헤더에 비해 간단하다.
    - UDP 데이터그램: UDP 헤더가 있는 데이터
    - UDP는 랜에서 불특정 다수에게 브로드캐스트로 데이터를 일괄 전송한다.

 

 

7장. 응용 계층: 애플리케이션에 데이터 전송하기

28. 응용 계층의 역할

  • 클라이언트: 서비스를 요청하는 측
    서버: 서비스를 제공하는 측
  • 클라이언트에서 사용하는 애플리케이션과 서버에서 사용하는 서버 프로그램 간의 통신은 응용 계층의 프로토콜을 사용한다.
  • 주요 프로토콜: HTTP, FTP, DNS, SMTP, POP3 등

29. 웹 서버의 구조 (웹 사이트 접속)

  • HTML
    - 하이퍼텍스트를 작성하는 마크업 언어, '태그'를 사용하여 문장 구조나 이미지 파일을 표시
    - HTML로 작성된 웹 페이지는 웹 브라우저로 볼 수 있다.
    - 하이퍼텍스트로는 문장, 이미지를 표시하거나 하이퍼링크를 사용할 수 있다.
  • 웹 브라우저는 웹 서버(웹 서버 프로그램)의 80번 포트를 통해 HTTP 통신을 한다.
    - 웹 브라우저에서 HTTP 요청을 보냄 > 웹 서버에서 HTTP 응답을 반환
  • HTTP/1.1 버전
    - keepalive 기능이 있어서 데이터를 교환하는 동안에는 연결을 유지하고 데이터 교환이 끝나면 연결을 끊는다.
  • HTTP/2 버전
    - 요청을 보낸 순서대로 응답을 반환하지 않아도 된다.

30. DNS 서버의 구조 (이름 해석)

  • DNS 서버는 '이름 해석'을 사용하여 도메인 이름을 IP 주소로 변환한다.
  • URL: 호스트 이름 + 도메인 이름
    - ex. URL: www.tistory.com (호스트 이름: www + 도메인 이름: tistory.com)
  • 요청받은 DNS 서버가 해당 도메인 이름의 IP 주소를 모르는 경우에는 다른 DNS 서버에 질의한다.
  • DNS 서버는 전 세계에 흩어져 있으므로 연계하면서 동작한다.

31. 메일 서버의 구조 (SMTP, POP3)

  • 메일 송신: SMTP (프로토콜) 25번 포트 사용
    메일 수신: POP3 (프로토콜) 110번 포트 사용
  • 메일 서버 간에도 SMTP를 사용하여 메일을 전송한다.
  • 메일 서버에는 메일 박스가 있는데 여기에 메일이 보관된다.

 

 

8장. 네트워크의 전체 흐름 살펴보기

32. 랜 카드에서의 데이터 전달과 처리

  • 웹에 접속할 때는 OSI 모델의 사우이 계층부터 캡슐화가 이루어진다.
  • 웹 서버에 있는 html 파일을 요청하는 경우에는 GET /index.html HTTP/1.1과 같은 HTTP 메시지를 보낸다.
  • 전송 계층에서 TCP 헤더가 추가되며, 이를 세그먼트라고 부른다.
    네트워크 계층에서 IP 헤더가 추가되며, 이를 IP 패킷이라고 부른다.
    데이터 링크 계층에서 이더넷 헤더와 트레일러(FCS)가 추가되며, 이를 이더넷 프레임이라고 부른다.
    물리 계층에서 데이터가 전기 신호로 변환되어 전송된다.

33. 스위치가 라우터에서의 데이터 전달과 처리

  • 스위치 내에 대응되는 OSI 모델 계층: 물리 계층, 데이터 링크 계층
  • 라우터 내에 대응되는 OSI 모델 계층: 물리 계층, 데이터 링크 계층, 네트워크 계층

34. 웹 서버에서의 데이터 전달과 처리

  • 웹 서버 내에 해당하는 OSI 모델 계층: 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 응용 계층

 

반응형