읽기 전
- 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
- 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
- 기술면접만을 준비하기보다 비전공자 입장에서 Network의 기본적인 내용만 짚기 위해 작성되었습니다.
TCP/IP의 계층
- TCP/IP : TCP와 IP 중심의 프로토콜 집합, 네트워크의 공통 언어
- 호스트 : TCP/IP로 통신하는 네트워크 기기 전반을 일컬어 부르는 용어
- 현재는 거의 TCP/IP가 주요하다.
TCP/IP의 계층 구조
네트워크 인터페이스 층 : 이더넷, 무선 LAN, PPP 등의 프로토콜로 자유롭게 선택하여 통신하며 상대방과 동일한 방식을 채택할 필요는 없다.
인터넷 층 : IP, ICMP, ARP 등의 프로토콜로 엔드투엔드 통신을 담당
트랜스포트 층 : TCP, UDP가 있다. 애플리케이션 데이터를 할당한다.
애플리케이션 층 : HTTP, SMTP, POP3, DHCP, DNS 등이 있다. 애플리케이션에서 다룰 데이터 형식과 절차를 결정한다.
OSI 7계층도 있으나 거의 4계층 위주로 통신이 진행된다. (네트워크 엔지니어라면 7계층 모두 숙지해야 할지도)
네트워크 인터페이스 층
네트워크 범위 : 라우터와 레이어 3 스위치로 묶이는 범위 or 레이어 2 스위치로 구성되는 범위
하나의 네트워크 안에서 데이터를 전송
레이어 2 스위치에 연결된 PC 간 통신
ex) 유선(이더넷), 무선 LAN(Wi-Fi), PPP 등이 있음
인터넷 층
- 거대한 네트워크 안에서 데이터를 전송하는 역할
- 라우터 : 네트워크끼리 연결하고 데이터를 전송하는 기기
- 라우팅 : 라우터에 의한 네트워크 간 전송
- 엔드 투 엔드 통신 : 원격지 네트워크에서 최종 출발지와 목적지 간 데이터 전송
- IP / ICMP / ARP 프로토콜 존재
- IP : 엔드 투 엔드 통신에 이용되는 프로토콜
- ICMP / ARP : IP를 보조하는 프로토콜
트랜스포트 층
- PC 사용 시 복수의 네트워크 애플리케이션 동작이 가능하게끔 기능
- 최하층부터 트랜스포트 층까지 도달 시 출발지 - 목적지 간 애플리케이션끼리 데이터 송/수신 가능
- TCP와 UDP 프로토콜 존재
- TCP : 엔드 투 엔드 통신의 신뢰성을 확보하는 프로토콜
애플리케이션 층
- 애플리케이션의 기능 실행을 위한 데이터의 형식과 처리 절차를 결정
- HTTP, SMTP, POP3, DHCP, DNS 등 다양함
- DHCP와 DNS는 애플리케이션에서 사용하지 않고 애플리케이션의 통신을 준비하는 프로토콜이다.
데이터의 송/수신
- TCP/IP에서는 TCP 4계층에 따라 4개의 프로토콜을 조합한다.
- 헤더 : 각 프로토콜의 기능 실행을 위해 정보를 담는 구조체
- 각 프로토콜은 데이터 전송 시 헤더를 같이 추가하여 보낸다.
- 캡슐화 : 프로토콜이 데이터 전송 시 헤더를 추가하는 과정을 의미
- 비캡슐화 : 프로토콜이 데이터 수신 시 첨부된 프로토콜의 헤더를 참고하여 적절히 처리 후 헤더를 벗긴 뒤 다른 프로토콜로 넘기는 과정
데이터 송신 과정 - HTTP 통신
- 웹 브라우저의 데이터는 HTTP 헤더를 앞에 첨부하여 TCP로 전달
- TCP 프로토콜이 TCP 헤더를 첨부, IP로 전달
- IP 프로토콜이 IP 헤더 첨부, 이더넷으로 전달
- 이더넷 프로토콜이 이더넷 헤더와 FCS 추가
- FCS(Frame Check Sequence) : 에러 체크를 위한 정보
- 4번까지 수행하면 네트워크로 내보낼 데이터 전체가 완성된다.
데이터 수신 과정 - HTTP 통신
- 데이터 수신 시 물리적 신호를 디지털로 변환, 이더넷 헤더 참조하여 자신이 수신처가 맞는지 확인하고 FCS로 데이터의 오류 여부를 체크하나. 이상이 없다면 이더넷 헤더, FCS를 제거하고 IP로 넘긴다.
- IP에서 IP헤더를 참조해 수신처가 맞는지 확인, 이후 IP 헤더를 제거하고 TCP로 넘긴다.
- TCP에서 TCP 헤더를 참조해 어느 애플리케이션 데이터인지 확인한다.(여기서는 HTTP) 이후 TCP 헤더를 제거하고 웹 애플리케이션으로 넘긴다.
- 웹 애플리케이션이 HTTP 헤더와 그 뒤의 데이터 부분을 처리한다.
계층별 데이터 구분
- 기기가 다루는 단계에 따라 주목할 계층을 특정하기 위해 호칭을 구분하기도 한다.
- 애플리케이션 층 : 메시지(ex. HTTP 메시지)
- 트랜스포트 층 : 세그먼트 / 데이터그램(ex. TCP 세그먼트, UDP 데이터그램)
- 인터넷 층 : 패킷 / 데이터그램(ex. IP 패킷, IP 데이터그램)
- 네트워크 인터페이스 층 : 프레임(ex. 이더넷 프레임)
'CS > Network' 카테고리의 다른 글
기술면접을 위한 Network 개념정리 06 - 이더넷, 무선 LAN (0) | 2021.09.25 |
---|---|
기술면접을 위한 Network 개념정리 05 - 웹사이트 (0) | 2021.09.25 |
기술면접을 위한 Network 개념정리 04 - IP (0) | 2021.09.25 |
기술면접을 위한 Network 개념정리 03 - TCP/UDP (0) | 2021.09.25 |
기술면접을 위한 Network 개념정리 01 - 네트워크 개관 (0) | 2021.09.25 |