https://www.youtube.com/watch?v=1pfTxp25MA8
이 영상을 보고 정리해본다.
두 대의 컴퓨터가 통신하려면 0과 1을 주고받을 수 있으면 된다.
그러면 모든 데이터를 주고 받을 수 있기 때문이다.
주파수: 1초당 진동한 진동 횟수
전자기파는 주파수 값이 고정되어 있지 않다.
파동이 진행되는 동안 주파수 값이 계속 변한다.
전선은 모든 주파수를 다 통과시키지 못한다.
그래서 특정 주파수만 통과시킬 수 있는 전선을 지나게 되면 데이터가 소실, 변조될 수 있다.
여기서, 0과 1로 이루어진 전자기파는 항상 0~무한대의 주파수 범위를 가진다.
그래서 이런 전기신호를 통과시킬 수 있는 전선은 없다.
-> 아날로그 신호로 바꿔서 전송해야 한다.
0101 0101을 보내고 싶다면 아날로그 신호로 바꿔서 보내야 한다.
Pysical Layer 기술은 PHY칩, 하드웨어적으로 구현되어 있다.
여러대의 컴퓨터가 통신하고 싶을때 전선 하나만 사용하는것이 경제적이다.
전선을 병렬로 연결하면 여러대의 컴퓨터가 통신할 수 있지만, 내가 보내고 싶은 컴퓨터 뿐만 아니라 엉뚱한 컴퓨터에도 데이터가 전송된다.
그래서 그 전선에 스위치를 달아서 보내고 싶은 사람에게만 데이터를 전송할 수 있다.
스위치가 여러개 있는 경우, 스위치끼리 연결해서 서로 다른 네트워크에 속한 컴퓨터끼리 통신이 가능하게 해주는 장비를 라우터라고 한다.
L3스위치: 스위치 + 라우터
ex) 공유기
이렇게 전세계의 컴퓨터들이 계층구조로 연결되어있는 것을 인터넷이라고 한다.
여러 컴퓨터에서 보낸 데이터를 동시에 받을때 데이터가 섞이면 안된다.
그래서 송신자는 데이터의 앞뒤에 특정한 비트열 붙인다.
예를들어서 송신자가 데이터를 보낼 때 앞에는 1111, 뒤에는 0000을 붙인다고 해보자. -> Framing
... 0000 1111 0110 1000 0001 1111 1011 0000 1111 ...
1111, 0000 기준으로 자르면 된다.
Data Link Layer 기술은 랜카드, 하드웨어적으로 구현되어 있다.
더 많은 컴퓨터들 사이의 통신을 위해서 사용
A가 B에게 데이터를 보낸다고 할때 A는 데이터 앞에 목적지 주소, 즉 B의 주소(ip)를 붙인다.
ip주소: 각 컴퓨터들이 갖는 고유한 주소
A가 B에게 데이터를 보내기 위해서는 B의 IP주소를 알아야 한다.
우리가 주소창에 www.naver.com을 입력하면 이 영어주소는 IP 주소로 변환되어 사용된다.
따라서 우리는 naver의 IP주소를 알고있는것과 마찬가지이다.
즉, 상대방의 IP주소를 알고 있어야 데이터를 보낼 수 있다.
[55.10.54.75 [data]] 이렇게 감싸져 있는것을 패킷 이라고 부른다.
수많은 네트워크의 연결로 이루어지는 inter-netwrok 속에서,
어딘가에 있는 목적지 컴퓨터로 데이터를 전송하기 위해
IP주소를 이용해서 길을 찾고 (routing)
자신 다음의 라우터에게 데이터를 넘겨주는 것(forwarding)
Network Layer 기술은 운영체제의 커널에 구현되어 있다.
이제 인터넷 상의 모든 컴픁터가 서로와 통신할 수 있게 되었다.
그런데 컴퓨터에는 여러 개의 프로그램들이 실행되고 있다.
컴픁터는 세 개의 데이터를 여러 프로세스들에게 나누어 주려고 한다.
어떤 데이터를 무슨 프로세스에게 줘야할지 컴퓨터는 어떻게 알 수 있을까?
먼저, 데이터를 받고자 하는 프로세스들은 포트번호(Port Number)를 가져야 한다.
포트번호는 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 정수 값이다.
송신자는 데이터를 보낼때 데이터를 받을 수신자 컴퓨터에 있는 프로세스의 포트 번호를 붙여서 보낸다.
[Port:9000 [안녕하세요!]]
데이터 전송자는 포트번호를 미리 알고 있어야 한다.
Port 번호를 사욯아여 도착지 컴퓨터의 최종 도착지인 프로세스까지 데이터가 도달하게 하는 모듈
encoder
1. [data]
2. [Port:9000 [data]]
3. [Destination: 55.10.54.75 [Port:9000 [data]]]
decoder는 역순
Transport Layer 기술은 운영체제의 커널에 소프트웨어적으로 구현되어 있다.
https://snnchallenge.tistory.com/100