728x90
반응형

컴퓨터(Computer Science) 205

SSL, Secure Sockets Layer 란 무엇일까? (+HTTPS)

이것의 목적은 인터넷에서 보안을 위해서다. 파일과 같은 것들을 안전하게 주고 받기 위해 사용하는 것이다. 인터넷 통신은 특히 위험하다. 통신 상대를 속이는, 중간에 데이터를 가로채서 변조하거나 도청하는 등 수많은 위험에 노출되어있다. 인터넷 상에서 결제, 수납, 파일 다운로드 등 중요한 작업을 할 때가 많은데 SSL을 통하여 네트워크에서 서로 인증함으로써 위에 언급한 위험을 피하는 것이다. 일반적으로 증명서를 사용해서 정당성을 확보하고 서로 간의 암호화를 확인하여 암호화된 통신을 시작하는 것이다. 그렇다면 HTTPS 는 무엇일까? HTTP + SSL이다. HyperText Transfer Protocol over SSL의 약자다. WWW 서비스 데이터 통신에는 이것을 사용한다. 웹 서버와 웹 브라우저 간..

TCP vs UDP 비교

TCP, Transmission Control Protocol UDP, User Datagram Protocol 정확히 무엇인지 알아보자. 또한 각각의 특징들을 알아보자 또한 위의 것들은 통신에서의 프로토콜이다. 여기서 통신이란 호스트 컴퓨터에 있는 프로세스 간의 통신이라고 하는 것이 더 정확하다. **IP는 호스트와 호스트 간의 통신에만 책임이 있는 것이다. TCP, UDP와는 다른 프로토콜임을 인지하자 -> 포트번호에 대해서 알면 더 쉽다. 우선 TCP부터 알아보자 OSI 참조 모델에서 전송 계층에서는 신뢰성이 높은 통신을 보증해야 한다. **신뢰성이란 데이터 손실 없이 정확하게 전달하는 것을 의미한다. 위의 그림을 설명하자면 3단계로 나눌 수 있다. 1. 클라이언트는 초기 순서 번호를 선택한 SYN..

VPN, Virtual Private Network, 우회하는 원리

우리는 VPN 우회로 해외 사이트를 접속하고는 한다. 막힌 사이트 주소를 정부에서 먼저 검열하여, 우리의 컴퓨터가 보기 전에 정보를 차단하기 때문이다. 이런 뜻이 무엇일까?? VPN은 인터넷에 가상의 전용선 공간을 만들어 놓아서 거점 간을 안전하게 연결하기 위한 기술 또는 이를 사용하여 구축한 네트워크를 가리킨다. **보통 전용선이라 하면 비싼 가격을 생각하지만 VPN의 경우는 기존의 인터넷 회선을 이용하기 때문에 저가로 제공이 가능하다. 가상의 전용선 공간은 거점 간에 암호화된 통신 데이터를 주고받음으로써 구현된다. 여기에서 사설 전용선 공간이란 사설 네트워크나 인트라넷과는 다른 것이다. 그렇다면 어떤 방식으로하느냐??? 우선 일반적으로 어떻게 통신을 하는지부터 알아보자 일반적으로는 인터넷 사업자(IS..

클라이언트와 서버, Client & Server

아래 그림을 보면 어떤 생각이 나는가? 이것이 클라이언트와 서버다. 게임에서는 클라이언트 프로그램이 작동하지 않는다는 말로 게임이 꺼지기도 하는데.. 이 또한 서버와의 접속이 끊어져서 그렇다. 또한 Server는 진짜 Serve, 대접하다의 er이 붙어서 Server가 된 말이다. 즉, 대접하는 사람, 서비스를 제공하는 사람이라고 보면 된다. 클라이언트, Client 또한 손님, 요구하는 사람이 된다. 일반적으로 옛날의 컴퓨터에서는 P2P, Peer to Peer 관계로 이루어져 있어서 네트워크의 클라이언트들이 파일이나 프린터와 같은 자원을 공유하는 형태의 네트워크가 많았는데 여기서 나의 파일을 다른 컴퓨터가 쓰고 싶을 때는 내가 Server가 되고 다른 컴퓨터가 Client가 되는 것이었다. 즉, 일방..

Subnet Mask, 서브넷 마스크란?

우선 이름을 보니 우선 낯익다. 네트워크 설정을 열어보니 이런 것이 있다. 이것이 무엇일까?? Sub는 하위의 란 뜻이고 Net은 그물이라는 뜻으로 네트워크 망을 말한다. Mask는 실제로 가면과 같이 무엇인가를 숨기기 위하여 가리는 것을 의미한다. 즉, 합해서보면 네트워크를 하위 단위로 나누기 위한 무엇인가를 말하는 것 같다. 정말로 그렇다. IP 주소는 우리가 사용하지만 바로 직접 사용되지는 않는다. 서브넷 마스키을 거쳐서 변환되어 사용된다. 즉, 주어진 IP 주소를 네트워크 환경에 따라서 나누어주기 위해서 사용하는 것이다. 그렇게 나누는 이유는 1. 브로드캐스트 영역을 나누어 로드 줄이기 위함 2. IP 주소를 효율적으로 사용하기 위함 서브넷 마스크가 IP를 변환하는 과정은 논리곱 AND를 이용한다..

유니캐스트, 브로드캐스트, 멀티캐스트 (Uni, Broad, Multi)

접두사만 바뀌고 다 cast가 붙는다. cast는 던지다라는 뜻으로 uni- 하나 broad - 사방 multi - 다중 의 뜻과 합쳐져 쓰인다. 그렇다면 네트워크에서 던지는 것은 뭘 던진다는 것일까? 뻔하다. 데이터다. 위 3가지 용어는 통신 방식의 차이이다. 유니캐스트부터 알아보자 일단 통신이 되려면 전송되는 프레임,Frame 에 출발지 주소, 목적지 주소, MAC address가 쓰여있어야 한다. 즉, 주소를 쓸 때 하나의 PC에 대해서만 쓰여야 한다는 말이다. 편지와 같다. 보내는 사람과 받는 사람만 있는 것과 마찬가지다. 이게 바로 Unicast이다. 이러한 방식으로 임의의 PC가 유니캐스트 프레임을 보내면 로컬 네트워크 상의 모든 PC들은 일단 이 프레임을 받아들여서 자신의 맥 어드레스와 비교..

MAC address vs IP address, 맥 주소 IP 주소 비교하기

우리는 네트워크를 이룰 때 착각하는 것이 있다. IP만 있으면 된다고 생각한다. 물론 개발자가 아니라면 IP가 유일한 주소고 IP를 알아야만 통신이 가능하다고 까지만 알아도 된다. 하지만 우리는 개발자로서 알아야 할 의무가 있다. **MAC은 우선 Media Access Control의 약자다. 우리는 네트워크 레이어에서 IP로 통신을 한다. 하지만 IP 주소를 다시 MAC으로 바꾸는 절차(ARP, Address Resolution Protocol)을 거친다. cmd 창에서 물리적 주소 = MAC 을 확인할 수 있다. 우선 완전히 공개하진 않았지만 48bit로 이루어져있다. 하지만 표현은 16진법으로 되어있다. 그래서 12문자가 나온다. 그렇다면 왜 필요한 것인가가 중요하다. IP 주소가 유일한데..? ..

Packet, 패킷이란? [네트워크]

패킷이란 데이터 전송의 단위로 Network 계층 위로부터 패킷이라고 부른다. 실제 전송의 단위라고 보면 되겠다. 패킷의 크기는 네트워크 종류마다 달라진다. 데이터를 패킷단위로 쪼개서 보내는 이유는 한 번에 보내기도 어려울 뿐더러 대역폭의 한계가 있다. 또한 에러 정정이 어렵다. Network 계층이 host로부터 host로의 패킷 전달을 책임지고 진행한다. 아래와 같은 식이다. 살다 보면 Packet loss 라고 패킷이 손실되는 경우가 생긴다. 해당 패킷이 손실되는 경우는 크게 2가지가 있다. 1. Congestion, 네트워크 혼잡, 정체 네트워크가 수용할 수 있는 최대 용량에 도달하게 되면 패킷은 전달될 순서를 기다리지만 네트워크의 성능이 급격하게 낮아져 패킷을 저장할 수 없는 경우 그 이상의 패..

데이터 스트림, Data Stream [네트워크]

우선 Data Stream이란 것이 무엇일까? ** 사실 스트림이란 것 자체가 중요한 것은 아니지만 알고는 가자 스트림(stream)이란 데이터의 흐름이다. 네트워크 책에도 많이 나오곤 한다. 네이버에서는.. 한 번의 읽기 또는 쓰기 동작으로 전송되는 정보. 한 장치에서 다른 장치로 보내지는 모든 정보 진짜 데이터가 열을 지어 차례대로 입력되는 것을 의미한다. 정해진 포맷에 따라 문자나 바이트 형식으로 송수신되는 것을 의미한다. 데이터는 지속적으로 생성되고 시간에 따라 다른 값이 입력될 수 있다. 뭐 이정도 되겠다. 네트워크 책이랑 같다. 아래 코드는 파일 읽기, 출력하는 코드다. 역시 읽을 때 쓰는 stream과 같은 stream이다. PrintFileContents() { fp = OpenFile(“..

Network Service, 네트워크 품질 [네트워크]

우리가 흔히 말하는 네트워크, 인터넷이 좋다는 것의 의미는 무엇일까? 먼저 용어들을 깔고 알아보자 네트워크의 품질을 결정하는 요소는 크게 4가지 대역폭, Bandwidth (Throughput, 처리량)이라고도 함 지연시간, Latency (신뢰도, 일관성) 손실, Loss 흔히 "속도"라고 말할 것이다. 하지만 이 "속도"가 의미하는 바는 무엇일까? 사실 이 속도는 대역폭, Bandwidth라고 할 수 있다. 왜냐하면 우리가 100을 요청했을 때 1씩 100번을 들여오는 것이냐 50씩 2번을 들여오는 것이냐가 곧 속도가 될 것이기 때문이다. 그래서 일반적으로 bps로 표현된다. 요즘은 10Gbps라던가..? 전화선, 랜선을 비교해보았는가? 선의 개수도 다를 뿐더러 굵기도 다르다. 이를 통해 물리적인 전..

728x90
반응형