데이터는 0또는 1로 이루어진 숫자이고, 컴퓨터는 이진법의 숫자를 전기의 켜짐
과 꺼짐
으로 표현 할수 있다. 즉 데이터는 아주 기 전기신호 인 것이다.
컴퓨터, 스마트폰 등 한 클라이언트에서 발생한 데이터
가 상대방 컴퓨터 혹은 서버로 전달되기 위해서는 표준화된 어떠한 약속 혹은 절차를 따라야한다. 전기신호가 그냥 케이블을 타고 상대방 컴퓨터로 전달 되는것이 아니다.
보내는 쪽에서는 데이터를 안전하고, 정확하고, 신속하게 규격화
즉 포장하는 방법이 필요하고, 받는 쪽에서는 그 데이터를 안전하고 정확하고 신속하게 해석
하는 방법이 필요한 것이다. 그런 기술적 약속을 프로토콜이라고 한다.
컴퓨터 간 데이터를 주고 받을 때 에러가 발생하지 않도록 알맞게 나누어 전송하고, 이를 수신하여 다시 기존에 정보로 변환하는 과정을 살펴보자
네트워크상에서 여러 대의 컴퓨터가 데이터를 주고 받기 위해서는 이들을 서로 연동할 수 있도록 표준화된 인터페이스를 지원해야한다. OSI 7계층모델과 TPC/IP모델 모두 계층구조
를 갖고 있다. 계층 구조는 네트워크 뿐만 아니라 운영체제 등 다양한 분야에서 적용되는데, 계층구조를 사용하는 목적은 분할정복(Divide and Conquer)
때문이다. 어떠한 복잡한 문제를 해결하고자 할 때, 나누어 생각하면 쉽게 해결할 수 있다는 것이다.
계층 구조의 또다른 특징은 위, 아래층으로만 이동할 수 있다는 점이다. 건너뛰어 한번에 맨위 또는 아래로 갈수 없다. 즉, 다음 계층으로 넘어가려면 이전 계층이 전제조건이 되어야한다.
초창기의 네트워크는 각 컴퓨터마다 시스템이 달랐기 때문에 하드웨어와 소프트웨어의 논리적인 변경없이 통신할 수 있는 표준모델이 나타나게 되었다.
PDU란
PDU는 2계층-프레임(Frame), 3계층-패킷(Packet), 4계층-세그먼트(Segment)만 생각하면 된다. 네트워크 통신과정을 깊게 이해하기 위해서는 왜 각각 계층의 pdu가 다른지 알아야하고, 역활에 대해 알고 있어야 한다
물리계층은 가장 낮은 첫번째 계층이다. 이 계층의 구현 이름은 PHY라는 용어로 불린다.
물리계층은 어떤 하나의 네트워크에서 기본 네트워크 하드웨어 전송기술들로 구성된다. 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다. 물리계층은 상위 계층에서 전송된 데이터를 물리 매체(허브, 라우터, 케이블 등)를 통해 다른 시스템에 전기적 신호를 전송하는 역활을 한다.
즉, 기계어를 전기적 신호로 바꾸어 와이어에 실어주는 것이다
다양한 특징의 하드웨어 기술이 접목되어있어 OSI아키텍처에서 가장 복잡한 계층으로 간주된다
데이터 링크 계층은 장치 간 신호를 전달하는 물리 계층을 이용하여 네트워크 상의 주변 장치들 간 데이터를 전송한다. 시스템간의 오류 없는 데이터 전송을 위해 패킷을 프레임
으로 구성하여 물리계층으로 전송한다. 3계층에서 정보를 받아 주소와 제어정보를 헤더와 테일에 추가한다
네트워크 계층은 중간 라우터를 통한 라우팅을 포함하여 패킷 포워딩을 담당한다. 또한 기기에서 데이터 그램(Datagram)이 가는 경로를 설정해주는 역활을 한다. 라우팅 알고리즘을 사용하여 최적의 경로를 선택하고 송신측으로부터 수신측으로 전송한다. 이때, 전송되는 데이터는 패킷
단위로 분할하여 전송한 후 다시 합쳐진다. 2계층이 노드 대 노드 전달을 감독한다면, 3계층은 각 패킷이 목적지까지 성공적이고 효과적으로 전달되도록 한다
포워딩 이란
라우팅 이란
라우터 내 패킷 포워딩 (Packet Forwarding) 방법
ㅇ 라우터는 입력 링크측으로부터 수신된 패킷의 헤더 부분에서 IP 주소를 추출하고
ㅇ 추출된 IP 주소를 라우팅 테이블과 비교하여 살펴보고
ㅇ 어느 포트에 연결된 링크로 보낼 것인가를 결정하고
ㅇ 그 다음에 새로운 헤더 정보를 붙여서 다음 라우터로 다시 전달하게 된다
참조
전송계층은 계층 구조의 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공한다. 전송 계층은 연결 지향 데이터 스트림 지원, 주소설정, 신뢰성, 흐름 제어, 다중화를 수행한다
발신지에서 목적지(end to end)간 제어와 에러를 관리한다. 패킷의 전송이 유효한지 확인하고 전송에 실패된 패킷을 다시 보내는 것과 같은 신뢰성있는 통신을 보장하며, 헤드에는 세그먼트
가 포함된다.
통신 세션을 구성하는 계층으로, 포트
번호를 기반으로 연결한다. 통신장치 간의 상호작용을 설정하고 유지하며 동기화한다. 동시송수신(Duplex), 반이중(Half-Duplex), 전이중(Full-Duplex)방식의 통신과 함께 체크 포인팅과 유후, 종료, 다시시작 과정등을 수행한다
세션 계층프로토콜은 연결이 손실되는 경우 연결 복구를 시도한다. 오랜 기간에 걸쳐 연결이 되지 않으면 세션 계층 프로토콜은 연결을 닫고 다시 연결을 재개한다. 교환 메시지 스트림내에서 동기화 지점을 제공한다.
동기화
표현계층은 네트워크의 데이터 번역자로서의 역활을 한다. 송신측과 수신측사이에서 데이터의 형식(png, jpg, jpeg...)을 정해준다. 받은 데이터를 코드로 변환, 구문검색, 암호화, 압축의 과정을 통해 올바른 표준 방식으로 변환해준다
응용계층은 컴퓨터 네트워크 프로그래밍에서 인터넷 프로토콜(IP) 컴퓨터 네트워크를 통하는 프로세스 간 통신 접속을 위해 설계되어 통신 프로토콜과 방식을 위해 보유된 추상 계층이다. 사용자와 바로 연결되어 있으며 응용 sw를 도와준다. 사용자로부터 정보를 입력받아 하위 계층으로 전달하고 하위 계층에서 전송한 데이터를 사용자에게 전달한다.
여러 하위 통신 프로토콜 개체에 대하여 사용 관점의 사용자 인터페이스를 제공하며, 파일 전송, DB, 메일 전송 등 여러가지 응용 서비스를 네트워크에 연결해주는 역할을 한다.
실제 사용되는 인터넷 프로토콜 스택 (Internet Protocol Stack)은 현재 대부분 TCP/IP를 따른다
TCP/IP는 인터넷 프로토콜 중 가장 중요한 역활을 하는 tcp
와 ip
의 합성어로 데이터의 흐름관리, 정확성 확인, 패킷의 목적지 보장을 담당한다. 데이터의 정확성 확인은 TCP가, 패킷을 목적지까지 전송하는 일은 IP가 담당한다
TCP는 데이터 전달을 관리하는 규칙이다. 즉, 데이터를 작게 나누어서 한쪽에서는 다른쪽으로 옮기고, 이를 다시 조립하여 원래의 데이터로 만드는 규칙. 여기서 잘게 나눈 데이터 단위를 패킷
이라고 한다. 인터넷에서는 정보를 전달하는 단위를 뜻한다. TCP는 패킷을 조립하고, 손실된 패킷을 확인하고, 재전송하도록 요청하는 기능을 한다
IP는 인터넷상의 주소 규칙이다. 집의 주소를 부여하는 규칙이 존재하듯이, 인터넷상에 연결된 모든 컴퓨터의 위치에도 규칙이 필요하다. 이전에는 2^8 4자리의 주소인 IPv4를 사용하였지만 주소가 고갈되고 있어서 현재는 16^4 8자리인 IPv6로 전환되고 있다.
*tcp/ip의 4계층
tcp/ip는 osi 참조 모델과 달리 표현계층, 세션계층을 응용계층에 다 포함시키고 있지만, 사실상 TCP/IP Model의 Application계층 하나에서 Application, Prsentatiom, Session계층의 구현을 다 하고있다고 이해하는게 올바르다
OSI(Open Systems Interconnections)7계층
은 시스템들의 연결을 위한 모델로, TCP/IP 4계층
은 이를 웹서비스에 맞게 단순화 시킨 모델이다
응용계층: HTTP, FTP, Telnet, SMTP 등 네트워크를 사용하는 응용프로그램으로 이뤄집니다.
전송계층: TCP, UDP 등 시스템을 연결하고 데이터를 전송하는 역할을 합니다.
인터넷계층: ICMP, IGMP, IP등 데이터를 정의하고 데이터의 경로를 라우팅합니다.
물리계층: Ethernet, ATM등 네트워크 하드웨어를 의미합니다
TCP/IP 4계층을 통하여 데이터를 통신하는 순서
DNS
상에서 IP주소
를 받아온다HTTP메시지
를 작성한다패킷
으로 분해한다데이터는 아래와 같이 단계별로 헤더(Data -> Segment -> Datagram -> Frame)를 붙여 전송하며 이를 데이터 캡슐화
라고한다