Protocol - The rules that both the sender and receiver and all intermediate devices need to follow to be able to communicate effectively
프로토콜이란 송수신자 그리고 망 내에서 효과적으로 communicate 할수있게 따라줘야하는 규칙 이라 한다.
처음에 프로토콜에 대해 배울때는 크게 와닿지 않았는데 계속 하다보니 어느정도 이해는 가게 되는거 같다.
Protocol 은 간단하지만 복잡하다.(Nevertheless 이태곤)
TCP/IP 는 총 5 계층이다.
한 계층씩 알아보겠습니당.
물리 계층이라고도 하는 Physical 계층이다.
실질적으로 bit가 전송되게 되며 신호를 전송하는데 있어서 약속이 필요한데 그 약속을 물리적 계층이라 한다.
Data Link 계층은 링크를 통하여 프레임(Frame) 전달을 하는 계층이다.
만약 A에서 B로 10110 을 보낸다면 상대인 B도 physical 의 약속에 따른 1,0을 구분할수있다.
하지만 이때 만약 10110 이 잡읍이 끼여서 01110 으로 받게 된다면 ?
우리는 Error 가 있으면 Detection 한 후 Correction 의 순서로 해결해 나가야 한다.
그래서 에러를 알아차릴수 있도록 우리만의 약속이 필요하다.
상위 계층으로부터 데이터그램을 받아 에러를 알아차릴수있는 추가정부를 붙인다.(encapsulation)
전송 한후 만약 잘못받으면 다시 보내달라해야한다.
그 자체가 "약속" 인 Data Link 이다.
통신은 각 계층끼리 통신을 하기에 만약 error 가 있으면 다시 data link에 보내 달라 해야한다.
Link = 두 시스템을 연결해주는것
A 에서 B로 통신을 해야하는데 link 가 A-B 로 하나로 되어있다면 좋겠지만 실제로는 여러 애들을 거쳐서 연결되어 있다.
그래서 A 시작점에서 어디로 보내야 하나 ? 그것을 결정할수있는 Protocol 이 필요하다. 이것을 네트워크 계층이라한다.
가능한 경로를 통해 패킷(Packet)을 라우팅(Routing) 하기 위한 책임을 담당한다 한다.Packet 안에는 송수신측 주소가 들어있게된다.
Applicaiton 계층에서 메시지를 받아 Transport 계층 패킷으로 캡슐화 하여 목적지 호스트의 전송 계층에 전달을 책임한다.
Transport 계층은 두가지 역활을 한다.
다른 길로 간 애들이 먼저 도착하게 되면 안된다. 번호를 활용해서 순서가 맞지 않으면 순서를 맞춰줘야한다.
그리고 Router 에는 버퍼가 있는데
어느쪽에서도 접근이 가능하다. 들어오는 데로 버퍼링 걸리는데
만약 강의실에 모든 학생이 들어오는데 한 학생씩 교수님이 물어서 너는 무슨 수업이니? 컴구 요. 하면 저문으로가 ! 너는 무슨 수업이니? 데통이요 하면 너는 저문으로가! 하는 역활을 한다. 맞는 길을 알려준다.
하지만 만약 강의실의 정원이 80인데 80의 이상이 들어오게 되면 당연하게 자리는 없어진다. 자리가 없어지면 Data 는 없어지게된다.
그것을 Packet Loss 라 한다.
Transport 계층이 빈 Packet 을 보고 다시 보내라 해야한다.
Application 계층 간에 메시지를 교환하는 계층이다. 서로 간의 Protocol 을 정의해서 사용하게 된다.
계층적 구조이다.
Data Link 계층 Switch 를 가진 3개의 LAN 으로 이루어진 인터넷이고 링크들은 하나의 라우터에 연결된다.
Switch 는 잠시 거치는 것으로 물리,Data 두개의 계층이 있고
Router 는 물리,Data,Network 총 3개의 계층이 있다.
프로토콜 계층화에서 매우 중요한 개념이다.
상위 계층에서 하위 계층으로 이동하여 받을떄는 하위 계층에서 상위 계층으로 올라가게 된다.
Applicaiton 계층에서 메시지(Message) 를 Transport 계층으로 전달한다.
그럼 Transport 계층은 받아서 Header 정보를 추가하여 Segment 로 만든뒤 Network 계층으로 전달한다.
Network 계층은 segement를 받아 또 Header 를 추가하여 Datagram or packet 이라는 네트워크 계층 패킷으로 만든뒤 Data link 계층에 보낸다.
Data link 계층은 받은 후 Header 추가한뒤 Frame 으로 만든후 Physical 계층으로 보낸다.
상위 계층에서 하위 계층으로 가면서 정보를 하나씩 추가함으로써 이러한 작업을 encapsulation ( 캡슐화) 라고 한다.
그럼 반대로 받을 떄는 하위 계층에서 상위 계층으로 간다고 했다.
위로 가면서 필요한 정보들만 받게 되고 필요 없는 정보는 하나씩 없애주는 작업을 Decapsulation ( 역 캡슐화) 라고 한다.
OSI 란 Open System Interconnection 으로 어떤 시스템이든 간에 밴드에 상관없이 연결 가능하다는 마이다. ( 7 가지 계층을 다 가질떄)
그럼 OSI 가 open 이라면 그 반대도 있었을 것이다.
Closed 는 IBM 시스템이면 IBM 시스템 끼리만 통신이 가능하다는 말이다.
-> 자기들끼리 사용하는 Protocol 이 다르기 떄문.
OSI는 7계층으로 TCP/IP 와 다 똑같지만 2개의 계층이 늘었다.
Presentation(표현) 계층과 Session 계층이다.
만약 A 에서 B로 통신을 할때 A가 압축해서 보냈는데 상대는 압축해둔지 모를것이다.
그래서 앞으로 어떻게 보낼게 라는 약속이 있어야한다. = 표현을 맞춰줘야함
그 약속이 Presentation 계층이라한다.
책 한권을 보내다가 15페이지에 오류가 났음
그럼 15페이지만 다시 보낼지, 15페이지의 챕터를 보낼지 , 책을 다시 보낼지를 정해야한다. 이 전체를 하나의 Session 으로 본다.
A 에서 B 로 통신을 할때 Audio도 보내고 화면도 보내면 받았을때 따로 놀게 되는 Lip-sync 현상이 일어나게 될것이다.
그 현상을 막고 관계를 설정 해주는것을 Session 계층이라 한다.
TCP/IP 프로토콜이 많은 시간과 돈을 들여서 완전히 자리잡은 후에 OSI 가 완성 되었다.
현재 인터넷에는 Presentation,Session 계층이 없다. 이말은 Application 계층에서 알아서 해줘야 한다는 말.
TCP/IP 는 클라이언트와 서버간의 데이터 전송 방식으로 맞춰야하는 부분이 있고
OSI 는 어떠한 형태로 데이터를 전송하더라도 7가지 계층의 구조를 가지고 있으면 상관없이 통신이 가능하다는 말이다.