네트워크 구성
홈 네트워크
우리가 흔히 사용하는 인터넷을 사용하기 위한 홈 네트워크
구성 - 모뎀, 공유기, 단말 간의 물리적 연결
- 무선 연결 : 무선 랜 카드 무선 신호를 보낼 수 있는 매체(공기)
- 유선 연결 : 유선 랜 카드(이더넷 랜 카드), 랜 케이블(랜선)
데이터 센터 네트워크
안정적인 서비스 제공을 위해 다양한 이중화 기술을 사용해야하고 많은 서버와 서비스가 한 네트워크에 연결되어 있으므로 높은 통신량을 수용할 수 있어야 한다. → 10G, 25G, 40G, 100G, 400G 같은 고속 이더넷 기술 사용
- 기존엔 3계층 구성이 일반적
- 그러나 스케일 아웃 기반의 애플리케이션 등장으로 2계층 구성인 스파인 리프 구조로 변화되었다.
- 스파인 리프 : 서버간 통신이 늘어나는 최근 트래픽 경향을 지원하기 위해 제안됨.
프로토콜
규정이나 규약, 최근에는 이더넷-TCP/IP 기반 프로토콜들로 변경되고 있다.
측면 | 예시 | 프로토콜 |
물리적 | 데이터 전송 매체, 신호 규약, 회선 규격 등 | 이더넷 |
논리적 | 장치들끼리 통신하기 위한 프로토콜 규격 | TCP/IP |
- 물리 → 이더넷 / 논리 → TCP/IP
💡 하지만 애플리케이션 레벨의 프로토콜은 비트 기반이 아닌 문자 기반 프로토콜이 많이 사용 된다. 효율성은 비트 기반 프로토콜보다 떨어지지만, 다양한 확장이 가능하다. ex ) HTTP / SMTP
프로토콜 스택 Protocol Stack
TCP/IP 는 별도 계층에서 동작하는 프로토콜이지만 함께 사용하고 있는데, 이런 프로토콜 묶음은 프로토콜이 아니라 프로토콜 스택이라고 부른다.
TCP/IP 프로토콜 스택의 4개 부분
- 물리 계층 : 이더넷
- 네트워크 계층 : 데이터가 목적지로 찾아가게 해줌
- 잘린 패킷을 데이터 형태로 잘 조합하도록 조와줌 : 전송 계층 / 애플리케이션 계층
OSI 7계층
과거에 통신 규약이 표준화되지 않았을 때 각 벤더에서 별도로 개발해 호환되지 않는 시스템이나 애플리케이션이 많아 통신이 불가능한 경우가 많았다. 그래서 이를 하나의 규약으로 통합하려는 노력이 현재의 OSI 7계층으로 남아있다.
OSI 레퍼런스 모델
계층 | 용어 | 데이터(PDU) | 계층별 나누기 |
애플리케이션 계층 | Application Layer | Data | 애플리케이션 |
프레젠테이션 계층 | Presentation Layer | Data | 애플리케이션 |
세션 계층 | Session Layer | Data | 애플리케이션 |
트랜스포트 계층 | Transport Layer | Segments | 데이터 플로 |
네트워크 계층 | Network Layer | Packets | 데이터 플로 |
데이터 링크 계층 | Data Link Layer | Frames | 데이터 플로 |
피지컬 계층 | Physical Layer | Bits | 데이터 플로 |
- 데이터 플로 계층 : 데이터를 상대방에게 잘 전달하는 역할
- 애플리케이션 계층 : 애플리케이션 개발자들이 고려하는 역할
애플리케이션 개발자는 하향식 형식으로 네트워크를 바라보고, 네트워크 엔지니어는 상향식 형식으로 네트워크를 인식한다. (어떻게 보면 당연하지 않을까 본인 기준으로 왔다갔다하는 방향이 그거니까..)
TCP/IP 프로토콜 스택
TCP/IP 는 이론보다 실용성에 중점을 둔 프로토콜이다. (맘에 든다.)
- OSI 레퍼런스 모델은 7계층이지만 TCP/IP 모델은 4계층으로 구분한다.
- TCP/IP 는 OSI 7계층보다 데이터를 만드는 애플리케이션 부분과 데이터를 잘 전달하는 데 집중하는 하부 계층 구분을 좀 더 확연히 한다.
- 상위 3계층은 애플리케이션으로 묶고 1,2계층(물리 계층과 데이터 링크 계층)을 네트워크 계층으로 구분한다.
OSI 7계층별 이해
1계층(피지컬 계층)
물리적 연결과 관련된 정보를 정의. 주로 전기 신호 전달을 목적.
- 주요 장비 : 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭
- 전기 신호가 1계층 장비에 들어오면 전기 신호를 재생성해 내보낸다.
- 주소 개념이 없으니 모든 포트에 같은 전기 신호를 전송.
2계층 (데이터 링크 계층)
전기 신호를 받아 데이터 형태로 처리, 출발지와 도착지 주소를 확인 후 내게 보낸 것이 맞는지 처리해야하는지 검사, 데이터 처리와 알맞은 주소로 통신이 되는 것에 초점.
- 2계층 부터는 주소 체계가 생겨, 여러 통신이 한꺼번에 이루어지는 것을 구분할 수 있다.
- 전기 신호를 모아 데이터 형태를 데이터로 처리하므로 데이터 에러를 탐지하거나 고칠 수 있으..나
- 이더넷 기반 네트워크 2계층에서는 에러 탐지 역할만 수행 → ARP
- 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업을 먼저 함. (플로 컨트롤)
- 주요 장비 : 네트워크 인터페이스 카드, 스위치
MAC 주소
2계층에서 사용하는 주소 체계. 2계층의 가장 중요한 특징.
- 네트워크 인터페이스 카드와 스위치 모두 MAC 주소를 가지고 있고 이해할 수 있다.
- 스위치는 MAC 주소를 보고 통신 포트를 지정해 내보낸다.
네트워크 인터페이스 카드
- 고유 MAC 주소 보유
- 입력되는 전기 신호를 데이터 형태로 바꾸고 도착지 MAC 주소를 확인
- 본인에게 들어오는 전기 신호가 아니면 버리고
- 맞으면 상위 계층에서 처리할 수 있도록 메모리에 적재
스위치
- 주소를 습득해서 적절한 포트로 포워딩
- MAC 주소 테이블을 가지고 있다. (MAC : 포트)
3계층(네트워크 계층)
IP 주소 같은 논리적인 주소 정의, 라우터 이용(IP 주소로 경로 찾고 패킷 전송)
- 3계층 장비는 로컬 네트워크와 원격지 네트워크를 구분 가능.
- 원격지 네트워크로 가려면 어떻게 가야하는지 경로를 지정할 수 있다.
- 장비 : 라우터
- IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송해준다.
IP 주소
- 사용자가 환경에 맞게 변경해 사용 가능 (MAC 은 하드웨어 고정)
- 네트워크 주소와 호스트 주소 부분으로 나뉨
4계층 (트랜스포트 계층)
실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할 (로드밸런서, 방화벽)
- 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아주고 재전송 요청.
- 패킷 헤더에 보내는 순서 명시 → 시퀀스 번호
- 받는 순서 명시 → ACK 번호
- 장치 내의 애플리케이션 구분을 위해 포트 번호 사용
- 주요 장비 : 로드밸런서, 방화벽
- 포트 번호와 시퀀스, ACK 번호 정보를 이용해 부하 분산과 보안 정책을 수립해 패킷을 통과, 차단하는 기능을 수행.
5계층 (세션 계층)
양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리, 작업이 완료되면 연결을 끊는다.
- TCP/IP 세션을 만들고 없애는 책임을 가짐.
- 에러로 중단된 통신에 대한 에러 복구와 재전송 수행.
6계층 (프레젠테이션 계층)
표현 방식이 다른 애플리케이션/시스템의 통신을 하나의 통일된 구문 형식으로 변환시키는 기능 수행
- 사용자 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 덜어주는 일종의 변환기
- 예 ) MIME 인코딩, 암호화, 압축, 코드 변환
7계층 (애플리케이션 계층)
애플리케이션의 프로세스 정의하고 서비스 수행 (UI 나 사용자 입출력)
- 대표 프로토콜 : FTP, SMTP, HTTP, TELNET
인캡슐레이션 및 디캡슐레이션
현대 패킷 기반 네트워크에서 물리 계층 ~~~ 애플리케이션 계층에서 데이터 전송을 위해 패킷의 형태를 바꾸는 과정
인캡슐레이션
애플리케이션 계층 → 데이터플로 계층으로 데이터를 내려보내며 패킷에 데이터를 넣을 수 있도록 분할하는 과정
- 네트워크 상황을 고려, 적절한 크기로 데이터를 쪼갬
- 네트워크 전송을 위한 정보를 헤더에 붙임.
- 4,3,2,1 계층에서 내려가며 각각 본인들이 필요한 정보를 비트 단위로 추가
디캡슐레이션
받은 전기 신호를 데이터 형태로 만들어 애플리케이션 계층까지 올려보내는 과정
- 각 계층에서 송신자가 작성한 n계층 헤더에 포함된 정보를 확인
- 목적지가 자신이 아니라면 버림.
- 맞으면 올려보내는데 이 때, 본인 계층 헤더 정보는 더 이상 필요 없으므로 벗겨내고 올려보냄(2계층 헤더 정보는 3계층 부터는 필요 없으니)
데이터 흐름 요약
상위 계층에서 데이터 플로 계층으로 내려오고, 다시 하위 계층에서 상위 계층으로 전달된다.
- 상위계층에서 패킷 형태로 하나씩 인캡슐레이션되며 내려옴
- 랜카드에서 전기 형태로 변환 → 목적지 전달
- 전기 신호를 받은 목적지에서 데이터 형태로 변환 → 상위 계층으로 올려줌
- 패킷을 조합해 데이터 형태로 만든다. (디캡슐레이션)
참고
현재 계층에서 추가하는 헤더 정보는 받는 상대방이 확인하는 정보.
- 만약 4계층에서 헤더를 추가했다면 그 정보는 받는 쪽 4계층에서 확인
헤더 필수 정보
- 현재 계층에서 정의하는 정보
- 상위 프로토콜 지시자
현재 계층에서 정의하는 정보
- 4계층 프로토콜 TCP → 시퀀스, 아크 번호로 데이터 표현
- 3계층 → IP 주소
- 2계층 → MAC 주소
상위 프로토콜 지시자
- 프로토콜 스택은 상위 계층으로 올라갈수록 종류가 많아짐
- 3계층 IP 는 → 4계층에서는 TCP 또는 UDP → 더 상위에서는 FTP, HTTP, SMTP … 등등
- 디캡슐레이션하는 목적지 쪽에서 상위 프로토콜 지시자를 확인하고 어떤 상위 프로토콜로 보내줘야하는지 알아야 함.
상위 프로토콜 지시자를 계층마다 부르는 법
4계층 | 포트 번호 |
3계층 | 프로토콜 번호 |
2계층 | 이더 타입 |
- 포트 번호는 4계층 헤더 정보이지만 애플리케이션 계층에서 프로토콜 종류를 나타내주는 정보.
- 어떤 상위 프로토콜로 보내야 할지 구분이 필요하므로 동작하는 계층보다 한 계층 위의 정보가 적혀있음.
MSS & MTU (데이터 크기 조절)
MTU
2계층 네트워크에서 한 번에 보낼 수 있는 데이터 크기(이더넷에서는 일반적으로 1,500바이트)
MSS
4계층 네트워크에서 수용할 수 있는 크기를 역산정해 데이터가 4계층으로 내려올 때 적절한 크기로 쪼개질 수 있도록 유도, 그 값.
'개발공부 개발새발 > Network' 카테고리의 다른 글
Network ) 통신 방식 , MAC 주소, IP 주소 (서브네팅) (0) | 2024.05.30 |
---|---|
Network ) 네트워크 연결 (0) | 2024.05.08 |
Network ) 서버 송수신 동작과 응답 (0) | 2023.08.04 |
Network ) 방화벽과 캐시서버 (0) | 2023.08.03 |
Network ) 액세스 회선 (ADSL, FTTP) 와 프로바이더 (0) | 2023.08.03 |