혼공학습단 12기 과제로 혼자 공부하는 네크워킹을 읽고, 정리한 내용을 작성한 글입니다.
아주 긴 서론
혼공학습단을 처음 지원한게 아마 8기인 것 같아요... 그 때는 혼자 공부하는 파이썬으로 혼공 학습단에 참여했는데, 제가 개발 블로그를 시작하게 된 동기가 되어 준 스터디 활동이라 아주 애정합니다. 혼공파 글은 네이버 블로그에서 작성했기 떄문에 이 블로그에선 볼 수 없지만, 혼자 공부하는 MySQL글은 아직도 있답니다...!
처음 혼공단을 할 때에는 고등학교 1학년, 프로그래밍을 배운지 3개월정도 밖에 안 된 병아리... 까마귀였는데 지금은 취업까지 한(정규직은 아니지만) 상태입니다 ㅠㅠㅠ 덜덜 시간이 참 빠르네요...
기술 블로그가 제가 프로그래밍을 공부하는 데에 큰 도움이 되었어요, 남들에게 제 꾸준함을 보여줄 수 있는 지표가 되어주기도 했고 여러 방면에서 참 복덩이같은 존재인데! 그런 기술 블로그를 시작하게 된 계기인 혼공학습단! 취업한 기념으로 한번 더 해봐야지라는 마음으로 신청해봤답니다.
비록 시험기간과 겹치지만 그래도 열심히 해보도록 하겠습니다!
패킷 교환
패킷 교환(Packet Switching)은 데이터 통신 네트워크에서 데이터를 작은 패킷 단위로 나누어 전송하는 방식입니다. 패킷 교환 방식은 데이터를 효율적으로 전송하고 네트워크 자원을 최적화하는 데 중요한 역할을 합니다.
패킷 교환의 기본 개념
- 데이터 분할: 큰 데이터는 여러 개의 작은 패킷으로 분할됩니다. 각 패킷은 독립적으로 전송되며, 목적지에서 다시 원래의 데이터로 재조립됩니다.
- 패킷 헤더: 각 패킷은 데이터뿐만 아니라 헤더 정보를 포함합니다. 헤더에는 송신자와 수신자의 주소, 패킷 순서, 오류 검출 코드 등이 포함되어 있어, 네트워크를 통해 올바르게 전달되고 재조립될 수 있게 합니다.
- 독립적 전송: 각 패킷은 독립적으로 네트워크를 통해 전송되며, 경로가 다를 수 있습니다. 이는 네트워크 혼잡을 줄이고, 특정 경로의 장애를 회피할 수 있게 합니다.
인터넷은 패킷 교환 방식을 사용하는 대표적인 예입니다. 인터넷에서 데이터는 IP 패킷으로 분할되어 전송되며, TCP/IP 프로토콜 스택을 통해 신뢰성 있는 데이터 전송이 이루어집니다.
프로토콜
프로토콜은 네트워크 상의 통신을 규정하는 일련의 규칙과 절차로, 데이터의 형식, 순서, 오류 처리, 흐름 제어 등을 포함합니다. 쉽게 말해, 데이터를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미합니다. 즉, 서로 다른 통신 장치들이 정보를 주고 받으려면 프로토콜이 통해야 합니다.
OSI 모델
OSI 모델은 국제 표준화 긱에서 만든 네트워크 참조 모델입니다. 통신 단계를 7개의 계층으로 나누는데, 최하위 계층에서 최상위 계층순으로 각각 물리 계층, 데이터 링크 계층, 네크워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층입니다.
- 물리 계층 (Physical Layer)
- 기능: 물리적 매체를 통한 비트 전송을 담당합니다.
- 세부 설명: 케이블, 전기 신호, 커넥터 등의 물리적인 전송 매체와 관련된 표준을 규정합니다. 실제 데이터 전송이 이루어지는 계층입니다.
- 데이터 링크 계층 (Data Link Layer)
- 기능: 물리적 주소(MAC 주소) 기반의 프레임 전송 및 에러 검출을 담당합니다.
- 세부 설명: 네트워크 기기 간의 데이터 전송을 관리하고, 오류 검출 및 수정, 프레임 동기화 등을 수행합니다. 이 계층은 두 개의 하위 계층으로 나뉩니다.
- MAC (Media Access Control) 계층: 실제 네트워크 매체 접근 및 제어
- LLC (Logical Link Control) 계층: 논리적 링크 제어 및 에러 검출
- 네트워크 계층 (Network Layer)
- 기능: 논리적 주소(IP 주소) 기반의 패킷 전송 및 경로 설정을 담당합니다.
- 세부 설명: 네트워크 간의 데이터 전송 경로를 설정하고, 데이터 패킷을 목적지까지 라우팅합니다. IP(Internet Protocol)가 이 계층에서 작동합니다.
- 전송 계층 (Transport Layer)
- 기능: 신뢰성 있는 데이터 전송(TCP) 및 비신뢰성 데이터 전송(UDP)을 담당합니다.
- 세부 설명: 데이터의 분할, 전송, 오류 검출 및 수정, 재전송 등의 기능을 담당하며, 통신 세션의 관리 및 데이터 흐름 제어를 수행합니다. 대표적인 프로토콜로 TCP와 UDP가 있습니다.
- 세션 계층 (Session Layer)
- 기능: 세션 설정, 관리 및 종료를 담당합니다.
- 세부 설명: 응용 프로그램 간의 대화(conversation)를 관리하고, 데이터 교환이 시작되고 유지되며 종료되는 방법을 규정합니다. 세션 복구 및 체크포인트 기능을 제공합니다.
- 표현 계층 (Presentation Layer)
- 기능: 데이터 형식 변환 및 암호화/복호화를 담당합니다.
- 세부 설명: 응용 계층에서 사용하는 데이터 형식을 네트워크에서 사용할 수 있는 공통 형식으로 변환합니다. 데이터 압축, 암호화, 인코딩/디코딩 등의 기능을 수행합니다.
- 응용 계층 (Application Layer)
- 기능: 네트워크 응용 프로그램 인터페이스를 제공합니다.
- 세부 설명: 사용자와 직접 상호작용하는 응용 프로그램과 네트워크 간의 인터페이스를 제공합니다. 웹 브라우징, 이메일, 파일 전송 등의 서비스가 이 계층에서 이루어집니다. HTTP, FTP, SMTP, DNS 등의 프로토콜이 이 계층에서 작동합니다.
TCP/IP 모델
TCP/IP 모델은 네트워크 통신을 설명하고 표준화하는 데 사용되는 네트워크 모델로, OSI 모델과 달리 4개의 계층으로 구성되어 있습니다. 이 모델은 인터넷과 같은 네트워크에서의 데이터 통신을 정의하며, 실제 네트워크 프로토콜이 어떻게 작동하는지에 중점을 둡니다. TCP/IP 모델의 4계층과 각 계층의 기능을 설명하겠습니다.
- 네트워크 인터페이스 계층 (Network Interface Layer)
- 기능: 물리적 네트워크 인터페이스와 데이터 링크 계층 기능을 포함합니다.
- 세부 설명: 이 계층은 실제 데이터 전송이 일어나는 물리적 매체와 관련된 기능을 담당합니다. 프레임의 형식, MAC 주소를 사용한 물리적 주소 지정, 하드웨어 관련 사항 등을 다룹니다. Ethernet, Wi-Fi (IEEE 802.11), PPP (Point-to-Point Protocol) 등이 이 계층에 속합니다.
- 인터넷 계층 (Internet Layer)
- 기능: 패킷 전송 및 라우팅을 담당합니다.
- 세부 설명: 네트워크 간 데이터 전송을 관리하고, 데이터 패킷을 목적지까지 라우팅합니다. IP 주소를 사용하여 논리적인 주소 지정 및 경로 설정을 수행합니다. 주요 프로토콜로는 IP(Internet Protocol), ICMP(Internet Control Message Protocol), ARP(Address Resolution Protocol) 등이 있습니다.
- 전송 계층 (Transport Layer)
- 기능: 신뢰성 있는 데이터 전송(TCP)과 비신뢰성 데이터 전송(UDP)을 담당합니다.
- 세부 설명: 데이터의 분할, 전송, 오류 검출 및 수정, 재전송 등의 기능을 수행합니다. 통신 세션의 관리 및 데이터 흐름 제어도 이 계층에서 이루어집니다. 주요 프로토콜로는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 있습니다. TCP는 연결 지향형 프로토콜로 신뢰성 있는 전송을 보장하며, UDP는 비연결형 프로토콜로 빠르고 효율적인 전송을 제공합니다.
- 응용 계층 (Application Layer)
- 기능: 네트워크 응용 프로그램 인터페이스를 제공합니다.
- 세부 설명: 사용자와 직접 상호작용하는 응용 프로그램과 네트워크 간의 인터페이스를 제공합니다. 이메일, 파일 전송, 웹 브라우징 등과 같은 서비스가 이 계층에서 이루어집니다. 주요 프로토콜로는 HTTP(HyperText Transfer Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol), DNS(Domain Name System) 등이 있습니다.
과제 1. OSI 모델 및 TCP/IP 모델 차이점을 정리하고, 이를 바탕으로 네트워크 계층 구조 작성
OSI 모델
OSI(Open Systems Interconnection) 모델은 ISO(International Organization for Standardization)에서 개발한 7계층 네트워크 모델입니다. 각 계층은 특정 기능을 담당하며, 하위 계층에서 상위 계층으로 서비스를 제공합니다.
- 물리 계층 (Physical Layer): 물리적 매체를 통한 비트 전송
- 데이터 링크 계층 (Data Link Layer): 물리적 주소(MAC 주소) 기반의 프레임 전송 및 에러 검출
- 네트워크 계층 (Network Layer): 논리적 주소(IP 주소) 기반의 패킷 전송 및 경로 설정
- 전송 계층 (Transport Layer): 신뢰성 있는 데이터 전송(TCP) 및 비신뢰성 데이터 전송(UDP)
- 세션 계층 (Session Layer): 세션 관리 및 통신 동기화
- 표현 계층 (Presentation Layer): 데이터 형식 변환 및 암호화/복호화
- 응용 계층 (Application Layer): 네트워크 응용 프로그램 인터페이스 (HTTP, FTP 등)
TCP/IP 모델
TCP/IP(Transmission Control Protocol/Internet Protocol) 모델은 인터넷에서 사용되는 4계층 네트워크 모델입니다. 실질적인 인터넷 통신 표준으로 자리 잡았습니다.
- 네트워크 인터페이스 계층 (Network Interface Layer): 물리적 네트워크 인터페이스와 데이터 링크 계층 기능 포함
- 인터넷 계층 (Internet Layer): IP 프로토콜을 사용한 패킷 전송 및 경로 설정
- 전송 계층 (Transport Layer): TCP/UDP 프로토콜을 사용한 데이터 전송
- 응용 계층 (Application Layer): 네트워크 응용 프로그램 인터페이스 (HTTP, FTP 등)
OSI 모델과 TCP/IP 모델의 비교
OSI 모델 | TCP/IP 모델 | 설명 |
물리 계층 | 네트워크 인터페이스 계층 | 비트 전송 |
데이터 링크 계층 | 네트워크 인터페이스 계층 | 프레임 전송 및 에러 검출 |
네트워크 계층 | 인터넷 계층 | 패킷 전송 및 경로 설정 |
전송 계층 | 전송 계층 | 데이터 전송 (TCP/UDP) |
세션 계층 | 응용 계층 | 세션 관리 |
표현 계층 | 응용 계층 | 데이터 형식 변환 |
응용 계층 | 응용 계층 | 네트워크 응용 프로그램 |
과제 2. 문제 풀이
프로토콜에 대한 설명으로 옳지 않은 것은?
- 프로토콜은 정보를 주고받는 통신 장치 간의 합의된 규칙이나 방법을 의미합니다.
- 네크워크 참조 모델에서 계층별로 프로톨을 달리 구성할 수 있습니다.
- 프로토콜에는 목적과 특징이 있습니다.
- 통신 장치 간에 프로토콜이 통하지 않아도 정보를 주고받을 수 있습니다.
옳지 않은 것은 4번입니다! 통신 장치 간의 프로토콜이 같아야 합니다.
네크워크 참조 모델에 대한 설명으로 옳지 않은 것은?
- OSI 모델은 7개의 계층으로 통신 과정을 구분합니다.
- TCP/IP 모델은 3개의 계층으로 통신 과정을 구분합니다.
- 네트워크 참조 모델은 네트워크 구성과 설계를 용이하게 합니다.
- 네트워크 참조 모델은 네크워크 문제 진단과 해결을 용이하게 합니다.
옳지 않은 것은 2번입니다. TCP/IP 모델은 4개의 계층으로 통신 과정을 구분합니다.
'CS' 카테고리의 다른 글
[CS] 낙관적 락, 비관적 락 (0) | 2024.09.08 |
---|---|
[CS] 비선형 자료구조 그래프, 트리, 힙, 맵, 셋, 해시 테이블에 대해 알아보자 (0) | 2024.05.07 |
[CS] 선형 자료구조에 대해 알아보자 (연결 리스트 / 배열 / 백터 / 스택 / 큐) (0) | 2024.05.04 |
[CS] 데이터베이스의 정규화 (0) | 2024.04.17 |
[CS] 토큰 기반 인증과 JWT (0) | 2024.04.12 |