너무 오랜만에 기어온 티스토리...
그동안 자격증 시험 준비로 소홀했습니다... 크흑...
오늘은 개강맞이 컴퓨터 네트워크 수업을 들으며
기억을 잃기 전에 냉큼 기록해보려 다시 티스토리에 오게 되었습니다 : )
1. IP주소에 관하여
1-1. IP 주소는 왜 필요할까요?
코로나 19로 비대면 일상이 익숙해지면서, 우리는 배달의민족이나 요기요 등 어플을 이용해 배달을 자주 시켜먹게 되었습니다.
배달을 하기 전에 배달될 음식을 고르고, 다고르면 주소를 적고, 돈을 지불하면 배달이 오게 되는 시스템이죠.
하지만 만약 배달 주소를 적지 않는다면 어떻게 될까요?
내 밥....
제대로 된 자신의 밥을 받지 못하게 될 겁니다.
배달어플에서 배달될 주소 즉 자신의 주소는 식별자가 되는 셈이죠.
이와 같이 IP주소도 동일합니다.
나의 정보를 주고싶은 친구의 IP주소를 모른다면 그 친구에게 정확한 정보 전달이 불가능하게 되는 것이죠.
전세계적인 측면에서 본다면, 한국 인터넷 주소 체계와 미국 등 여러나라의 인터넷 주소 체계가 같기 때문에 전세계 통신이 가능하게 된 것입니다.
1-2. TCP, UDP, HTTP
IP 주소를 이용해 네트워크가 이루어지며 정보를 주고받을 때 필요한 네트워크 규약들입니다.
아직 수업에선 자세하게 배우진 않았지만, 각 정보를 찾아보았습니다.
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
1-3 throughput, delay, loss
인터넷의 빠르기를 평가하는 요소들 입니다.
이것들도 아직 정확하게 배우지 않았지만 겉핥기 식으로 간단하게만 알아보았습니다.
throughtput
소스로 부터 목적지까지 단위시간동안 배달한 트래픽의 양을 의미합니다.
packet loss
패킷이 대기하는 큐의 사이즈는 한정되어 있어 큐에 남은 공간이 없을 때 loss가 일어나게 됩니다.
delay
다음 노드로 완전히 전송될 때까지 걸리는 시간 입니다.
2. COMMUNICATION에 대하여
우리는 과거에서부터 현재까지 다양한 방식의 커뮤니케이션을 진행하며 발달해왔습니다.
과거에는 Smoke signal(연기피우기), Messenger(문서를 말타고 전달), telegraph/telephone(음성형태), transportation network(택배)를 통해 다양한 정보를 공유해왔죠.
하지만 이 수단들이 가져다주는 정보의 양은 적고, 한정되어 있으며 다른 나라까지 가야하는 정보의 경우 아예 보낼 수 없거나 느리다는 한계에 부딪히게 되었습니다.
이 사이에서 등장한 것이 바로 컴퓨터 입니다.
컴퓨터는 하드웨어 컴포넌트들과 물리적, 논리적으로 연결되어 있어 멀리 떨어진 친구들 혹은 다른 나라 사람들과도 소통을 가능하게 만들어줬습니다.
2-1. 우리는 왜 커뮤니케이션을 할까요?
만약 A,B,C 회사가 있다고 가정해봅시다.
A회사는 자본이 풍족하지만, 다른 것들은 없습니다.
B회사는 아이디어가 풍족하지만, 다른 것들은 없습니다.
C회사는 인력풀이 넘치지만, 다른 것들은 없습니다.
이 회사들이 성공적인 사업을 하기위해선 자본, 아이디어, 인력풀 이 모든 것이 필요하기 때문에 이들은 많은 회사들과 소통하며 정보, 자원을 공유하며 회사를 성공적으로 키워나가게 됩니다. 이것이 커뮤니케이션을 하는 이유입니다.
이 과정을 컴퓨터 네트워크로 본다면 Node와 Link로 따져볼 수 있습니다.
이 때 Node는 공유하고 싶은 정보나 자원이 되고, Link는 공기(에어)가 됩니다.
공기를 타고 소리가 나가 말이되니까요~!
이 공기는 2가지로 나누어볼 수 있는데 Wired Link(LAN선)와 Wireless Link(WiFi)로 나누어 볼 수 있습니다.
참 다양한 링크로 소통이 가능하죠 : )
2-2. Direct Links VS Indirect Links
유선이고 무선이고로 나눠볼 수도 있지만, 연결방식에 따라서도 직접적인 연결이냐 간접적인 연결이냐로도 나눠볼 수 있습니다.
Direct Links
노드와 노드 사이 링크 빼고는 없는 연결 방식을 의미합니다.
위에서도 말씀드렸다시피 네트워킹이 필요한 주제들은 Nodes라고 합니다. Hosts라고 불리기도 해요.
예를 들어 카카오톡으로 정보를 주고 받는다고 가정을 했을 때 Application programs(카카오톡)을 실행하고 데이터 블록을 주고 받게 되는데요. 이 때 데이터 블록을 패킷(packets)이라고 부릅니다.
Indirect Links
네트워크 사이에 스위치라는 장치가 들어오게 되는 연결 방식 입니다.
스위치는 데이터가 들어오게 되면 일단 임시 저장(store)을 합니다. 그리고 목표 IP주소를 판별한 후 다음 스위치로 전달(forward)하게 됩니다. 스위치의 2가지 주요 기능입니다.
이 두 연결 방식을 살펴보았을 때 Direct Links보다는 Indirect Links 방식이 많이 쓰이고 있습니다.
데이터는 한 명씩 보내야 정확하게 전달이 가능합니다. 이 점에서 각자의 방식으로 바라보았을 때
직접적인 방식은 여러 명의 대상자에게 정보를 보내려고 한다면 충돌이 일어날 수 있습니다.
스위치와 같이 임시 저장 기능이 없기 때문에 충돌해서 에러가 날 수 있어요.
하지만 간접적인 방식은 스위치가 정보를 임시저장(store)을 해서 데이터끼리 충돌을 줄이기 때문에 더 많은 노드가 네트워크가 연결되어 데이터를 교환할 수 있기 때문에 더 많이 쓰입니다.
하지만 스위치로 구성된 네트워크가 더 커진다면 효과적으로 경로를 찾을 수 있을까요?
2-3. 라우터
위의 답을 말씀드리자면, "아니요" 입니다.
스위치가 많아지고, 길어지게 될수록 임시저장(store) 횟수가 많아지기 때문에 시간이 너무 지연되기 때문입니다.
그리하여 해결책으로 나온 것이 라우터입니다.
스위치가 합쳐져 각각의 네트워크를 만들고, 중간중간에 라우터가 라우딩으로 최적의 경로를 찾아주게 됩니다.
라우터 덕분에 네트워크의 네트워크를 만들 수 있게 되는 것이죠.
네트워크의 네트워크는 영어로 표현하면 inter network라고 표현할 수 있고, 이것을 줄여 인터넷이라고 부르게 됩니다.
현재 인터넷은 위와 같은 방식을 사용하고 있어요.
3. Packets이란?
패킷은 스위치로 구성된 네트워크를 돌아 전달되는 데이터 입니다.
인터넷에서 전달되는 최소 데이터 단위이죠.
보통 영상이나 사진 등의 정보는 먼저 binary로 인식이 되고, Byte stream data로 구성이 됩니다.
이 바이트 스트림 데이터는 아래 사진처럼 패킷으로 구성되어 있어요. 즉, 네트워크에선 작은 단위인 패킷으로 쪼개서 보내게 됩니다.
패킷에는 해더에 부가정보와 실제 전송되는 정보가 함께 들어가게 됩니다. 부가정보로 IP주소 같은 정보들이 들어가게 되어 정확한 목적지에 정보를 전달할 수 있게 되는 것입니다.
3-1. 왜 패킷으로 보낼까?
현재도 패킷을 사용해서 인터넷이 구성되는데요.
만약 150MB 파일에 해더 1개가 있는 것과
1.5kB 패킷 10만 개가 있는 것 즉, 각 패킷마다 해더가 있는 것이 있다고 가정해봅시다.
만약 해더가 1개인 패킷의 경우 1bit에 에러가 났을 경우 주소가 적인 헤더가 1개이기 때문에 다시 150MB 파일을 전송해야만 합니다.
하지만 10만 개의 각 패킷마다 해더가 붙어있는 경우에는 10만 개 가운데 손실된 패킷만 다시 보내면 되기 때문에 패킷방식이 더 효율적인 셈이죠.
3-2. 패킷의 단점
물론 현재 패킷 방식을 사용한다지만, 단점이 존재하긴 합니다. 하지만 이 단점보다는 이점이 더욱 크기 때문에 패킷 방식을 사용하고 있어요.
단점은 바로 overhead !
패킷이 10만 개면 헤더도 동일하게 10만 개가 필요하기 때문에 오버헤드가 발생할 수 있다는 것이 단점입니다.
여기까지 1시간의 짧은 수업을 정리해보았습니다.
화, 수 2시간 수업인데 1시간의 이 정도 정리량이라니 내일이 무섭네요 ㅎㅎ