IT 엔지니어를 위한 네트워크 입문 1장
1장 네트워크 시작하기
1.1 네트워크 구성도 살펴보기
- 네트워크는 크게 클라이언트와 서버로 나뉨
- 클라이언트는 서비스를 받는 입장이며 서버는 서비스를 제공하는 입장
1.1.1 홈 네트워크
- 일반적으로 [인터넷 → 모뎀 → 공유기 → 단말기] 흐름의 구성도 형성
- 네트워크는 광케이블을 통해 모뎀과 연결되며, 모뎀은 공유기로 연결
- 홈 네트워크를 구성하는 데는 모뎀, 공유기, 단말 간에 물리적 연결이 필요
- 무선 연결: 무선 랜 카드와 무선 신호를 보낼 수 있는 매체(공기)가 필요
- 유선 연결: 유선 랜 카드(이더넷 랜 카드: 일반적으로 보드에 내장됨), 랜 케이블(일반적으로 랜선이라고 부름)이 필요
1.1.2 데이터 센터 네트워크
- 데이터 센터 네트워크는 안정적이고 빠른 대용량 서비스 제공을 목표로 구성
- 이중화 기술을 사용해야 하며 서버 및 서비스를 한 네트워크에 연결하기 위해 높은 통신량을 수용 (고속 이더넷 필요)
- 데이터 센터의 네트워크 구성은 3계층 디자인과 2계층 디자인이 존재
- 기존 -> 3계층 디자인 사용
- 현재 -> 서버 간의 대용량 트래픽 통신을 지원하기 위해 2계층 디자인(스파인-리프) 등장
1.2 프로토콜
네트워크 통신의 규정 및 규약
- 물리적 측면: 데이터 전송 매체, 신호 규약, 회선 규격 등. ex) 이더넷
- 논리적 측면: 장치들끼리 통신하기 위한 프로토콜 규격. ex) TCP/IP
네트워크 탄생 초기의 환경은 매우 열악하여 최대한의 효율을 위해 비트 기반의 프로토콜을 사용하였음
- 장점 : 성능이 좋음
- 단점 : 알아보기 힘들고 확장하기 힘듦
애플리케이션 레벨의 프로토콜은 비트 기반이 아닌 문자 기반 프로토콜들을 주로 사용
ex) HTTP, SMTP -> 비트로 메시지를 전달하지 않고 문자 자체를 이용해 헤더와 헤더 값, 데이터를 표현 및 전송
- 장점 :문자로 정의되어 있어 헤더 정의가 자유롭고 확장 가능
- 단점 : 실제 텍스트(Text) 파일과 같은 데이터가 전달되기 때문에 효율성은 비트 기반 프로토콜보다 떨어짐
1.3 OSI 7계층과 TCP/IP
- 표준화가 되지 않았던 시절에는 각 밴더사의 방식대로 네트워크 통신 개발 진행 -> 시스템이나 어플리케이션 끼리 호환되지 않는 경우가 발생
- 현재는 OIS 7 계층을 이론적 배경(참조형 모델)으로 하고, TCP/IP 스택을 프로토콜(실제사용 모델) 기준으로 표준화
- 계층별로 프로토콜을 개발하여 각 계층을 모듈화
1.3.1 OSI 7계층
OSI 7계층은 다시 두 가지 계층으로 분류 가능
- 1~4계층: 데이터 플로 계층(Data Flow Layer) / 하위 계층(Lower Layer) = 데이터를 상대에게 전달하는 역할
- 5~7계층: 애플리케이션 계층(Application Layer) / 상위 계층(Upper Layer) = 애플리케이션 계층 프로토콜을 개발할 때 하위 데이터 플로 계층을 고려하지 않고 데이터를 표현하는 데 초점
1.3.2 TCP/IP 프로토콜 스택
- 대부분 TCP/IP와 이더넷으로
- 이론보다 실용성을 중점
OSI 모델 vs TCP/IP 모델
- OSI모델은 7개의 계층으로 구분하며, TCP/IP는 4개의 계층으로 구분
- OSI모델은 이론적인 분류, TCP모델은 현실적이고 실무적으로 구분
1.4 OSI 7계층 이해
1.4.1 1계층 (물리 계층)
- 물리 계층으로 물리적 연결과 관련된 정보 정의
- 1계층 장비는 주소의 개념 X => 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호 전송
- 주요 장비: 허브(Hub), 리피터(Repeater), 케이블(Cable), 커넥터(Connector), 트랜시버(Tranceiver), 탭(TAP)
허브, 리피터 | 네트워크 통신을 중재하는 네트워크 장비 |
케이블, 커넥터 | 케이블 본체를 구성하는 요소 |
트랜시버 | 컴퓨터의 랜카드와 케이블을 연결하는 장비 |
탭 | 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제 |
1.4.2 2계층 (데이터 링크 계층)
- 전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리
- 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는 데 초점
- 2계층에서는 네트워크 인터페이스 카드(NIC)와 스위치를 사용 - NIC는 고유 MAC주소 보유
- 무작정 데이터를 보내는 것이 아닌 수신자가 받을 수 있는 상태인지 확인 (플로우 컨트롤)
- 전기 신호를 모아 데이터 형태로 처리하므로 데이터에 대한 에러를 탐지하거나 고치는 역할을 수행
- MAC주소 체계를 바탕으로 여러 사람이 네트워크를 사용하며 데이터를 주고 받을 수 있게 됨
- 스위치는 자신과 연결된 각 단말의 MAC주소는 무엇인지, 포트번호는 무엇인지는 주소 습득 과정에서 알게 됨
- 각 단말들이 통신할 때 포트를 적절히 필터링 하고 정확한 포트로 포워딩
- 네트워크 전체에 불필요한 처리를 감소시키며 이더넷의 효율성을 향상
1계층 vs 2계층
- 1계층에서는 전기 신호를 잘 보내는 것이 목적이므로 출발지와 목적지를 구분 X
- 2계층에서는 출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 또는 내가 처리해야 하는지에 대해 검사한 후 데이터 처리를 수행
1.4.3 3계층 (네트워크 계층)
- IP 주소와 같은 논리적인 주소가 정의
- MAC 주소와 달리 IP 주소는 사용자가 환경에 맞게 변경해 사용
- 3계층 장비는 라우터 - 3계층에서 정의한 ip 주소를 이해할 수 있음, IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할
1.4.4 4계층 (전송 계층)
- 데이터플로우 계층은 데이터를 목적지로 보내거나 신호를 전달하는 역할 (1, 2, 3 계층)
- 4계층 전송 계층은 실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할 = 패킷의 순서와 유실에 대해 확인하는 작업
- 패킷을 분할할 때 패킷 헤더에 보내는 순서와 받는 순서를 적어 통신하므로 패킷이 유실되면 재전송을 요청 및 바로잡기 가능
- SEQ 번호 - 패킷에 보내는 순서 명시
- ACK 번호 - 패킷 받는 순서 명시
- 포트번호를 통해 어플리케이션을 식별
- 4계층 장비로는 로드밸런서와 방화벽 존재
1.4.5 5계층 (세션 계층)
- 양쪽 엔드포인트의 어플리케이션의 연결을 유지하고 작업 완료 후 끊어주는 역할 = TCP/IP 세션을 만들고 없애는 책임
- 에러로 중단된 통신에 대한 복구와 재전송도 수행
1.4.6 6계층 (프레젠테이션 계층)
- 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행
- ex) MIME 인코딩이나 암호화, 압축, 코드 변환
1.4.7 7계층 (애플리케이션 계층)
- 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행
- ex) FTP, SMTP, HTTP, TELNET
계층별 주요 프로토콜 및 장비
1.5 인캡슐레이션과 디캡슐레이션
인캡슐레이션
- 어플리케이션 계층 에서 데이터 플로우 계층으로 데이터를 넘길 때 패킷 단위로 분리
- 분리한 패킷을 4~2계층의 헤더 정보를 덧붙이며 내림 = 각 헤더는 비트단위 정보
디캡슐레이션
- 1계층에서 받아온 전기신호를 2계층에서 데이터 형태로 생성
- 4계층까지 전송받는 헤더를 확인하여 목적지를 확인하고 올리는 것
- 확인한 헤더데이터 삭제
=> 즉, 상위 계층→하위 계층, 하위 계층 → 상위 계층으로 데이터가 흐름. 각 계층의 헤더는 각 계층에서 만들고 확인하여 버림
반드시 헤더에 들어가야 하는 두 가지 정보
- 현재 계층에서 정의하는 정보
- 상위 프로토콜 지시자
현재 계층에서 정의하는 정보
- 4계층 - 시퀀스, ACK 번호 정보 (데이터의 분할과 조립을 목적으로 함 => 데이터의 분할과 조립 순서 중요)
- 3계층 - 출발지, 도착지의 IP 주소
- 2계층 - 출발지, 도착지 MAC 주소
상위 프로토콜 지시자
- 상위 프로토콜은 하위 프로토콜이 지정되어 있음 - ex) TCP 프로토콜에서는 IP 프로토콜로 데이터를 내려줌
- 하위 프로토콜은 복수의 상위 프로토콜을 가짐 - ex) IP프로토콜에서 TCP와 UDP 중 어디로 데이터를 올려야할지 정보가 필요
- 상위 프로토콜 지시자 종류 - 4계층은 포트번호, 3계층은 프로토콜 번호, 2계층은 이더타입
=> 인캡슐레이션 과정에서는 문제 x, 디캡슐레이션 과정에서는 상위 프로토콜에 대한 정보 필요
=> 인캡슐레이션 시 각 계층의 헤더에는 상위 프로토콜 지시자 정보가 지정됨
MSS & MTU
- 데이터 플로우 계층에서는 데이터를 네트워크 상황에 맞게 패킷으로 쪼개야 됨
- MTU - 네트워크에서 한 번에 보낼 수 있는 데이터의 크기
- 일반적인 이더넷의 MTU 크기: 1500byte
- MSS - MTU에서 각 계층별 헤더 값을 뺀 데이터의 크기 의미 - ex) MTU - 3~4계츠의 헤더값(각 20 byte) = 1460 byte
'CS' 카테고리의 다른 글
라우터/L3 스위치: 3계층 장비 (0) | 2024.03.28 |
---|---|
네트워크 연결과 구성 요소 (2) | 2024.03.14 |
DHCP (0) | 2021.08.04 |
DNS, DDNS 정리 (0) | 2021.08.04 |
VPN (0) | 2021.08.04 |