현대 인터넷은 TCP/IP updated 모델을 사용한다.
OSI 7 Layer 의 목적은 이질적인 시스템간 상호 접속을 위해 공통적인 기반을 제공하는데 있다. 네트워크 구조를 이해하는데 도움이 되기때문에 꼭 집고 넘어가자.OSI 7 Layers는 참고만 하자.
하지만 지금은 TCP/IP update 모델이 사용되고 있다.
TCP/IP updated model 로 대체 되면서 OSI 의 상위 계층(application, presentaion, session)이 application 계층 하나로 통일 되었다.
🕹 [Applicatoin + Presentation + Session] -> [Application]
TCP/IP 소켓 프로그래밍
소켓 프로그래밍을 사용해 세션계층부터 응용계층까지의 기능은 사용자 프로그램이 구현한다.
운영체제의 Transport Layer에서 제공하는 API를 활용해서 통신 가능한프로그램을 만드는 것을 TCP/IP 소켓 프로그래밍, 또는 네트워크 프로그래밍 이라고 한다.
소켓프로그래밍 만으로도 클라이언트, 서버 프로그램을 따로따로 만들어서 동작 시킬 수 있고 누구나 자신만의 application layer 인코더 디코더를 만들 수 있다.
네트워크 종단(end point) 시스템 간의 데이터를 일관성 있고 투명한 데이터 전송을 제공할 수 있도록 두 종단간(end to end)에 오류 복구와 흐름 제어를 제공한다.
받은 데이터를 무슨 프로세스에게 주어야할지.. ?? 어떻게 컴퓨터가 알 수 있을까..? 포트번호는 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 정수 값이다.
그래서 송신자는 데이터를 보낼 때 데이터를 받을 수신자 컴퓨터에 있는 프로세스의 포트번호를 붙여서 보내줘야한다.
운영체제 커널에 구현되어있다.
상대방의 IP 주소를 알고 있어야 데이터를 보낼수 있다.
데이터에 IP주소를 붙여준다. 패킷이 만들어 졌다!
첫번째 라우터가 패킷을 받아서 패킷을 열어보고 아이피 주소를 보고 연결된 컴퓨터에 해당 ip 주소가 없으면 다시 패킷으로 포장한다음에 다음 라우터에 넘긴다.
만약 라우터가 여러개라면 ?? 라우터의 원리를 공부해야된다...
많은 네트워크들의 연결로 이루어지는 inter_network 속에서 IP주소를 이용해 길을 찾고(routing) 자신의 다음의 라우터에게 데이터를 넘겨주는것이(forawrding)
운영체제의 커널에 소프트웨어적으로 구현되어있다.
통신 시스템 간의 경로를 선택하는 기능. 통신 트래픽의 흐름을 제어하는 기능
여러대의 컴퓨터가 동시에 데이터를 보낸다면 데이터를 어떻게 끊어읽느냐에 따라서 데이터의 원본이 훼손될수도 있다.
송신자는 데이터의 앞뒤에 특정한 비트열을 붙인다. 이것이 framing!!!!!
여러 대의 컴퓨터가 통신하려면?
더미 허브
하나의 네트워크 안에 스위치.
스위치(똑똑한 상자:더미 허브?): 전송한 데이터의 목적지를 찾아 목적지에만 데이터를 보내주는것.
네트워크와 네트워크를 연결해주는것: 라우터
해저케이블로 연결되어있다...어머나..
하드웨어에 구현되어있다.바로 LAN카드에!!
MAC 주소, 충돌방지 시스템 등
0과 1을 주고 받는다.
0과 1의 나열을 아날로그 신호로 바꾸어서 전선으로 흘려보내고(encoding) 아날로그 신호가 들어오면 0과 1로 해석(decoding)해서 읽는다. 0과 1의 나열을 주고받게 해주는 모듈(module)
전부 PHY칩으로 이미 만들어져 있다.. input output만듬..
디지털 신호를 전기 신호로 전송하는 계층, 회선사용, 부호화 결정, 전기신호를 어떻게 만들어서 보낼건지, 데이터를 동기 , 비동기로 읽을 것인지.
전송 매체와 전송 신호를 엑세스하기 위한 기계적, 전기적, 기능적, 절차적 특성을 규정짓는 최하위 계층이다.
기계적, 전기적, 기능적, 절차적 기능을 정의한다.
통신케이블, 전송 신호 방식, 물리적 장비를 정의한다.
송신자가 데이터를 보낼때 계층을 거쳐서 보내는 방식
수신측에서 받은 데이터를 확인하는 절차
refernece
https://www.youtube.com/watch?v=Fl8MkOYTc20
https://www.youtube.com/watch?v=1pfTxp25MA8