통신 구조
•
네트워크 통신은 다른 네트워크 상의 원격 컴퓨터에 데이터를 주고 받는 행위를 의미하는데, 데이터를 패킷이라는 작은 단위로 나누어 원하는 목적지에 도달할 수 있도록 한다.
•
네트워크 내에서 원격에 존재하는 다른 컴퓨터의 특정 프로세스를 찾아가기 위해서 IP주소와 port 번호를 사용한다. IP주소는 사용자가 외우거나 읽기 어렵기 때문에 DNS(domain Name Service)를 사용한다.
•
네임 서버에서 서버의 도메인 주소(DNS)를 물어봐 그에 해당하는 호스트 주소(IP 주소)를 받아 통신한다.
•
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로 컴퓨터의 위치를 찾은 다음 해당 프로토콜을 사용하여 패킷을 전송한다.
•
캡슐화와 역캡슐화
•
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 쿠키 정보, 바이러스 패턴을 분석하여 로드 밸런싱을 하기 때문에, 보안에 더 유리하고 더 정교한 로드 밸런싱을 할 수 있어 보안 스위치라고도 불린다.