Search

네트워크 통신과 구조

생성일
2023/07/26 04:07
태그

통신 구조

네트워크 통신은 다른 네트워크 상의 원격 컴퓨터에 데이터를 주고 받는 행위를 의미하는데, 데이터를 패킷이라는 작은 단위로 나누어 원하는 목적지에 도달할 수 있도록 한다.
네트워크 내에서 원격에 존재하는 다른 컴퓨터의 특정 프로세스를 찾아가기 위해서 IP주소와 port 번호를 사용한다. IP주소는 사용자가 외우거나 읽기 어렵기 때문에 DNS(domain Name Service)를 사용한다.
네임 서버에서 서버의 도메인 주소(DNS)를 물어봐 그에 해당하는 호스트 주소(IP 주소)를 받아 통신한다.
자세한 내용은 DNS와 URL 참조

OSI 7계층

국제 표준기구(ISO, International Standards Organization)에서 네트워크 구조를 설명하기 위해 OSI (Open Systems Interconnection) 모델을 만들었다.
1 계층 - 물리 계층
비트 스트림의 물리적 전송에 대한 기계적, 전기적 처리를 담당한다.
2 계층 - 데이터 링크 계층
물리 계층에서 발생하는 오류의 감지 및 복구와 프레임이나 패킷의 처리를 담당한다. MAC 주소 기반
3 계층 - 네트워크 계층
메세지를 패킷으로 나누고, 논리 주소 사이의 연결을 제공하고, 나가는 패킷의 주소처리나 들어오는 패킷의 주소 해독과 같은 패킷 라우팅을 담당한다.
4 계층 - 전송 계층
노드 간 메세지 전송, 패킷 순서 유지 및 흐름제어를 담당한다.
5 계층 - 세션 계층
프로세스 간 통신 프로토콜 구현을 담당한다.
6 계층 - 표현 계층
문자 변환 및 반이중-전이중 모드와 같이 네트워크 간의 형식 차이를 해결한다.
7 계층 - 응용 계층
사용자와 직접 상호작용하는 계층으로, 파일 전송 및 원격 로그인 프로토콜, 이메일 등등 여러 응용 프로그램을 처리한다.

TCP/IP 4계층

현재 수많은 프로그램들이 인터넷으로 통신하는데 있어 가장 기반이 되는 프로토콜로 실제 대다수 프로그램은 TCP와 IP로 통신하고 있다. TCP/IP 4계층은 대부분의 데이터 통신이 TCP/IP를 사용하기 때문에, OSI 7계층을 TCP/IP 프로토콜에 맞춰 단순화 시킨 모델이다.
1 계층 - 네트워크 액세스 계층
데이터를 전기신호로 변환하여 물리적 주소인 MAC 주소를 사용해 알맞은 기기로 데이터를 전달한다.
2 계층 - 인터넷 계층
IP 주소를 통해 패킷을 최종 목적지까지 라우팅하여 최종 목적지까지 정확하게 연결되도록 연결성을 제공한다.
3 계층 - 전송 계층
통신 노드 간 연결 제어 및 자료 송수신을 담당하고, 응용 계층의 세션과 데이터그램 통신서비스를 제공한다.
4 계층 - 응용 계층
사용자와 가장 가까운 계층으로 사용자-소프트웨어 간 소통을 담당하는 계층이다.
TCP 프로토콜은 패킷을 목적지까지 어떻게 안정적으로 보낼 것인가에 대해 정의한 프로토콜이고, TCP는 연결 확립과 보내진 패킷의 확인, 순서화, 전달 중 손상된 패킷을 복구하는 책임을 진다. 그 후 IP로 컴퓨터의 위치를 찾은 다음 해당 프로토콜을 사용하여 패킷을 전송한다.
TCP와 IP 프로토콜에 대한 자세한 내용은 HTTP와 IP, TCP와 UDP 참조

캡슐화와 역캡슐화

OSI 모델에서 데이터를 상위 계층으로 보내거나 하위 계층으로 보낼 때, 필요한 정보를 헤더에 담아 붙이는 캡슐화와 떼어내는 역캡슐화 과정을 거친다.
응용 계층에서부터 살펴보면, 응용 계층에서의 데이터 형식은 메세지로 UserData에 응용 헤더가 붙어진 형태이다.
응용 계층에서 메세지를 전송 계층으로 보낼 때 TCP 헤더를 붙이는 캡슐화를 진행하여 세그먼트로 만든다.
전송 계층에서 세그먼트를 네트워크 계층으로 보낼 때 IP 헤더를 붙여 패킷을 만든다.
네트워크 계층에서 패킷을 데이터링크 계층으로 보낼 때 이더넷 헤더와 트레일러를 붙여 프레임을 만든다.
이렇게 만들어진 프레임을 물리계층에서 비트로 연산하여 전송하게 된다.
이렇게 각 계층에서 동작하는 데이터의 단위를 PDU(Protocol Data Unit)이라 부른다.
위 그림에서는 OSI 7계층 모델을 사용하여 설명하였지만, PDU는 TCP/IP 4계층에서 주로 사용되는 명칭으로 4개만 나타낸다.
SDU(Service Data Unit)은 PDU와 다른 개념으로 상향 혹은 하향 계층 간에 전달되는 실제 정보를 의미하며, PDU = PCI(프로토콜 통신 유닛으로 헤더 정보를 의미) + SDU라고 생각하면 된다.

각 계층별 네트워크 구성 기기

1.
물리 계층
NIC(Network Interface Card)
컴퓨터 간의 네트워크를 연결하는 하드웨어로, 정보 전송 시 정보가 케이블을 통해 전송될 수 있도록 정보 형태를 변경한다.
이더넷 카드(LAN 카드) 또는 네트워크 어댑터라고도 불린다.
리피터 및 리피터 허브
리피터는 LAN 케이블에 흐르는 전기 신호는 전송 거리가 길수록 감쇠하는데, 전송되는 신호가 왜곡되거나 약해질 경우 원래의 형태로 재생하여 다시 전송하는 역할을 맡는다.
리피터 허브는 전달받은 패킷(비트)의 복사본을 재생하여 그대로 다른 포트에 전송하는 기기이다.
2.
데이터링크 계층
브릿지
포트와 포트 사이의 다리 역할을 담당하는 장치로, 네트워크 세그먼트를 서로 연결해주는 장치이다.
단말에서 받은 MAC 주소를 MAC 주소 테이블로 관리하고 전송 처리한다. 이 과정을 브리징이라고 한다.
L2 스위치
가장 기본적인 스위치로, 단말에서 받아들인 프레임의 MAC 주소를 MAC 주소 테이블로 관리하고 전송 처리한다.
브리지와 기능이 비슷하지만, 스위치는 하드웨어 방식으로 처리하고 브리지는 소프트웨어 방식으로 처리한다는 차이가 있다. 하드웨어로 처리하는 스위치 방식이 훨씬 빠르다.
3.
네트워크 계층
라우터
네트워크 간 데이터 전송을 위해 최적의 경로를 설정하는 장비로, IP 패킷의 IP 주소에서 네트워크 주소를 보고 다른 단말로 전달하는 장치이다.
라우팅 테이블이라는 테이블에 패킷을 전송할 목적지와 목적지까지의 거리, 가능 방법등을 관리하는 정적 라우팅 방식과, 네트워크의 구성에 맞게 최적의 경로를 그때그때 바꾸어 선택하는 동적 라우팅 방식이 있다.
라우팅 관련 자세한 내용은 라우터와 라우팅, 스위치 참조
L3 스위치
L2 스위치에 라우팅 기능을 추가한 기기로, 여러 포트를 가지고 있어 여러 단말을 연결할 수 있고 IP 패킷을 라우팅할 수도 있다.
스위치 자체에도 IP 주소가 할당되어 있으며, MAC 주소 테이블과 라우팅 테이블을 조합한 FPGA나 ASIC 등의 패킷 전송 처리 전용 하드웨어를 통해 스위칭 혹은 라우팅한다.
4.
전송 계층
방화벽
단말 사이에서 교환되는 패킷의 IP 주소나 포트 번호를 보고 통신을 허가하거나 차단한다.
L4 ~ L7 스위치
L4 스위치는 IP 주소뿐만 아니라 포트 번호도 참고하여, 외부에서 들어오는 요청을 받아 내부 서버들에게 적절히 분산(로드 밸런싱)시켜주는 역할을 한다.
프로토콜을 기반으로 어플리케이션 우선순위를 두어 스위칭을 하는데, 설정이 많이 복잡하지만 보안성이 좋아진다는 장점이 있다.
L5, L6 스위치 기능을 포함하는 L7 스위치는 L4 스위치와 마찬가지로 스위치로 들어온 패킷을 적절히 서버로 로드 밸런싱 해주는 역할을 한다.
L4 스위치와 차이점은 3~4 계층 정보인 IP 주소와 TCP/UDP, Port 정보를 보고 스위칭하는 L4 스위치와는 다르게, 위 정보들에 더해 패킷 내용까지 확인하여 스위칭을 해주는 방식이다.
HTTP의 URL이나 FTP 쿠키 정보, 바이러스 패턴을 분석하여 로드 밸런싱을 하기 때문에, 보안에 더 유리하고 더 정교한 로드 밸런싱을 할 수 있어 보안 스위치라고도 불린다.