안녕하세요~ 오늘도 컴퓨터네트워크 수업하고 돌아왔습니다!
1일차 복습하고, 2일차 정리해보도록 할게요~
1. 간단한 1일차 복습
이전 포스팅 참고 :
1-1. 네트워크 구성 시 필요한 2가지 요소
: 노드 & 링크
1-2. 링크는 2가지로 구분지을 수 있습니다.
: direct & indirect
특히, 스위치로 연결된 indirect 방식의 사이즈가 커지면서, 정보 전달 시간이 지연됨에 따라서 라우터가 등장하게 되었습니다.
1-3. 라우터?
: 라우터는 출발지에서 목적지까지 수천~수만가지의 경로 가운데 최적의 경로를 찾아주는 알고리즘으로 구성되어있는 기기입니다.
스위치로 연결된 장비들 (네트워크)를 서로 연결해주며 inter network(internet)이라고 불립니다.
오늘은 이 라우터에 대해 더욱 깊게 배우게 되었습니다!
2. 라우터에 관하여
2-1. 라우터의 역할
- 라우터의 역할은 route, forward입니다.
그 중 routing이 중요한 역할을 하는데요. 바로 routing이 출발지에서 목적지까지 최적의 길을 routing 알고리즘을 통해 찾아주는 역할을 하기 때문입니다. 쉽게 말해 routing 알고리즘은 흔히 우리가 사용하는 길찾기(지도) 알고리즘이라고 생각하면 됩니다.
2-2. 라우팅 알고리즘?
- 라우팅 알고리즘에는 Link-state, Dijkstra(다익스트라) 등의 알고리즘이 대표적입니다.
출발지에서 정보들(패킷)이 input 포트를 통해 라우터에 들어가게되면 라우터 헤더에 들어있는 출발지와 목적지의 IP주소를 파악하고, 라우팅 알고리즘을 돌려 최적의 output 포트를 결정합니다.
라우터 : 이 패킷은 4번 포트로 가야겠다!
위와 같이 라우터가 최적의 경로를 정하는 것을 우리는 forwarding이라고 합니다. (routing 알고리즘으로 forwarding 한다.)
참고로 라우터 장비는 고가입니다. 전세계에서 라우터를 가장 많이 파는 회사는 미국의 cisco라고 하네요.
3. 네트워크에 관하여
3-1. network란?
- 하드웨어 장비를 연결해 정보를 주고받게 하는 것을 말합니다.
그림을 보며 말하자만, 같은 링크로 연결된 direct 방식이나 같은 스위치로 연결된 indirect 방식은 하나의 네트워크라고 부릅니다.
그리고 이런 네트워크들이 수 천~수 만 개가 연결되어 있다면 그것을 우리는 Internet이라고 부르게 됩니다.
3-2. network를 구성하는 이유?
- 전 세계가 연결되어 정보를 전달하기 위해서 입니다. 이것을 우리는 Universal Communication이라고 해요.
주로 any - to - any 방식으로 연결되어 있죠.
*잡답1*
과거에 유비쿼터스 시대가 곧 온다는 말이 있었습니다. 지금 돌아보면 맞는 말인 것 같아요.
벌써 우리는 AI시대를 맞이하고 있거든요. 기술은 진보하고 있다는 말이 증명된 것 같습니다.
그리고 유비쿼터스 시대는 지금의 IoT시대로 확장되었습니다.
유비쿼터스 시대에는 사람이 컨트롤하는 컴퓨터가 목표였다면, IoT시대는 사람이 직접 제어하지 않는 모든 것들을 연결하는 것에 목표를 가지고 있습니다. 현재 냉장고나 전등 같은데에 iot 시스템이 붙어있는 것과 같죠.
*잡답2*
페이스북보다 빨리 만들어진 싸이월드가 잘 안됬던 이유 중 하나로 가장 많이들 끄덕이고 있는 점은
"모바일 개발"에 초첨을 맞추지 않고 싸이월드는 데스크탑 기반만 개발을 진행했었기 때문입니다.
싸이월드는 스마트폰은 main 디바이스가 될 수 없다고 생각을 했다고 해요.
그에 반해 페이스북은 어떤가요? 스마트폰으로 방대한 양의 동영상 정보를 얻을 수 있어 현재까지도 쓰이고 있어요.
3-3. network - any to any 연결 방식이란?
일반적으로 우리는 4대의 디바이스를 연결하기 위해 6개의 링크가 필요합니다. 디바이스의 갯수에 따라 링크가 늘어나는 갯수를 빅오로 나타내면 (N-1)x(N-2)->O(N^2) 으로 exponential하게 늘어나는 것을 확인할 수 있습니다.
하지만 하나의 링크는 모두 돈입니다. 땅에 링크를 심고, 유지보수를 해야하기 때문에 엄청난 돈이 들어간다고 해요.
그래서 생각해낸 방법이 any to any 방식으로 inter media nodes를 설정하는 것 입니다. inter media nodes는 주로 스위치나 라우터가 사용됩니다. inter media nodes는 multiplexing 방식을 이용해 정보를 처리하게 되는데요.
multiplexing 방식이란?
- 한정된 CPU 리소스를 여러 개 프로세스가 공유하는 것을 말합니다.
노드들은 많은데, 링크는 하나로 한정되어 있죠. 때문에 스위치나 라우터가 정보의 우선순위를 정해서 한정된 링크를 이용하게 합니다.
3-4. multiplexing의 방법들
- 한정된 자원을 나누는 multiplexing 방법에는 몇 가지 방법이 있는데, 가장 유명한 방법은 Time Division Multiplexing(TDM) 방법입니다.
- TDM?
: 말그대로 한정된 자원을 시간으로 나눠서 쓰자는 말입니다.
예를 들어 한정된 1개의 자습실을 A,B,C 3명의 학생이 나눠쓸 때 가장 효과적인 방법은 시간을 나눠서 사용하는 것이죠.
그 밖에도 다른 멀티플렉싱 방법은 Frequency-division multiplexing(FDM)이 있습니다.
FDM은 주파수에 따라 자원을 쪼개서 쓰는 방법입니다. 시차를 두지 않고 정보를 보내려고 할 때 쓰이죠.
예를 들어 1개의 자습실은 A,B,C 3명의 학생이 써야한다고 할 때 시간을 나눠서 쓰게 하는 것이 아닌 공간 자체를 나누는 방법이라고 할 수 있습니다.
4. 네트워크 -> 인터넷에 관하여
4-1. 네트워크에 연결된 디바이스?
네트워크에 연결된 디바이스는 hosts라고 부르기도 하고, end system, end device라고 부르기도 합니다.
hosts=end system=end system
hosts는 대표적으로 PC, Server, 스마트폰, wireless laptop 등이 있고, 앱을 동작시키는 역할을 합니다.
4-2. 엑세스 네트워크?
네트워크에 연결된 디바이스인 hosts는 엑세스 네트워크를 통해서 연결이 됩니다.
엑세스 네트워크에는 랜카드, 와이파이, LTE, 5G 같은 것들이 있습니다.
4-3. Communication links?
hosts와 엑세스 네트워크를 연결하는 커뮤니케이션 링크에는 다양한 것들이 있는데요.
fiber, copper(구리), radio(무선 링크), satellite(위성통신)가 있습니다.
유선 커뮤니케이션 링크의 경우 속도가 빠른 것이 장점이죠.
그에 반해 무선 커뮤니케이션 링크는 속도가 느린 편입니다.
그래서 무선 커뮤니케이션 링크를 많이들 사용하시는 이유는 공간(mobility)의 제약이 없다는 것이 큰 장점이기 때문입니다.
우리는 이 커뮤니티 링크의 전송 속도를 bit/s : bandwidth라고 쓰는데요.
수치가 높을 수록 초당 보낼 수 있는 데이터가 많다는 것을 의미하고, 빠르다는 것을 의미합니다.
5. 프로토콜에 관하여
프로토콜은 간단하게 정의하자면, 규칙과 절차를 의미합니다.
인간의 경우 "지금 몇시야?", "질문 있는데..."라는 말을 듣게 되면 "지금 시간은 3시 39분이야", "질문이 뭔데?" 이런 식으로 대략적으로 정해진 대답을 돌려주게 됩니다. 인간은 시간이 지날수록 커가면서 사회화가 되고, 학습 및 경험에 의해서 대답을 돌려줄 수 있기 때문입니다.
그러나 컴퓨터는 사회화가 불가능하기 때문에 1부터 10까지 미리 규약을 세세하게 정해서 일러주어야 하는것입니다.
또한 이 규약을 전세계가 통일해서 써야지만, 전세계와 통신이 가능하겠죠.
네트워크에서도 마찬가지 입니다.
우리는 네트워크 프로토콜(network protocol)이 존재합니다.
5-1. 네트워크 프로토콜(network protocol)
- 네크워크 프로토콜은 format, order, msgs, action taken 등을 정한 프로토콜(규약)이고, 컴퓨터는 이렇게 정의된 프로토콜을 기준으로 통신을 하게 됩니다.
6. Network Application에 대하여
우리가 잘 아는 카카오톡, 유튜브, 웹, 게임 등은 네트워크 애플리케이션에 속합니다.
카카오톡으로 대화를 주로 하는 우리로선 네트워크 애플리케이션은 reliable(신뢰높은)한 정보 전달이 필요하다는 것을 알 수 있습니다.
하나의 시스템이 잘 돌아가기 위해서는 방대한 영역의 개발 및 관리가 필요한데, 이것을 오직 한 사람만하는 것이 가능할리가 없죠.
여러 계층으로 나뉘어서 각자의 업무를 담당하고 있습니다.
6-1. application layer
애플리케이션 계층에서는 소프트웨어 실행을 도와주는 다양한 app을 지원을 합니다.
- 웹앱을 지원하는 HTTP
- 메세지를 지원하는 SMTP
- 웹 IP를 찾아주는 DNS
- 파일 시스템 지원하는 FTP
6-2. tranport layer
트랜스폴트 계층에서는 데이터 전송 방식을 결정합니다.
1강에서도 살짝 정리했다시피 데이터 전송 방식에는 TCP, UDP 방식이 있습니다.
TCP(Transmission Control Protocol) VS UDP(User Datagram Protocol)
데이터를 중요하게 생각하여 확실히 주고받고 싶을 때는 ‘TCP(Transmission Control Protocol)’를 사용합니다. TCP는 통신할 컴퓨터끼리 ‘보냈습니다’, ‘도착했습니다’라고 서로 확인 메시지를 보내면서 데이터를 주고받음으로써 통신의 신뢰성을 높입니다. 웹이나 메일, 파일 공유 등과 같이 데이터를 누락시키고 싶지 않은 서비스는 TCP를 사용하고 있습니다.
그에 반해 데이터의 신뢰성은 제쳐두고 어쨌든 빨리 보내고 싶을 때는 ‘UDP(User Datagram Protocol)’를 사용합니다. UDP는 데이터를 보내면 그것으로 끝이므로 신뢰성은 없지만 확인 응답과 같은 절차를 생략할 수 있으므로 통신의 신속성을 높입니다. VoIP(Voice over IP)나 시간 동기, 이름 해결 등과 같이 무엇보다 속도를 필요로 하는 서비스는 UDP를 사용하고 있습니다.
출처 : https://post.naver.com/viewer/postView.nhn?volumeNo=17543435&memberNo=15488377&vType=VERTICAL
6-3. network layer
네트워크 계층에서는 주소 체계를 정의합니다.
프로토콜에 맞는 IP를 적고, routing 알고리즘을 활용해 최적의 거리를 정합니다.
6-4. link layer
링크 계층에서는 링크 종류에 따라 정의된 프로토콜을 정합니다.
어떤 링크인지 무선인지 유선인지 WiFi인지 4G 5G 어느 것인지에 따라 전송 방식이 다릅니다.
왜냐하면, 각 프로토콜이 다르기 때문이에요. (4G프로토콜 != 5G 프로토콜)
6-5. physical layer
피지컬 계층에서는 하드웨어에 전파가 어떻게 전송되는지를 결정합니다.
2시간에 너무나도 방대하고도 알찬 수업을 들었네요 허허...
이렇게 정리하니 뿌듯합니다.
최대한 매 시간마다 정리하는 것이 목표가 되었네요 ㅎㅎ...
화이팅!
'CS > 컴퓨터 네트워크' 카테고리의 다른 글
컴퓨터 네트워크 5일차 : Throughput, Layering, ISP, Network Security (0) | 2021.09.14 |
---|---|
컴퓨터 네트워크 4-2일차 : 네트워크 delay / traceroute / Packet loss / Throughput (0) | 2021.09.13 |
컴퓨터 네트워크 4-1일차 : 네트워크의 4가지 지연 현상 총정리 : transmission delay / propagation delay / processing delay / queuing delay (0) | 2021.09.11 |
컴퓨터 네트워크 3일차 : 네트워크 계층, circuit vs packet 스위칭 (1) | 2021.09.07 |
컴퓨터 네트워크 1일차 : 컴퓨터로 소통하기 위해 필요한 것들 (0) | 2021.08.31 |