이번 포스팅에서는 링크드인 COMPTIA 네트워크 강의의 TCP/IP Application 부분 강의를 듣고 정리한 내용을 적어보려고 한다. TCP와 UDP 네트워크 계층 중 전송계층(Transport Layer)은 송신자와 수신자를 연결하는 계층으로, 데이터를 전달한다. 그리고 이 계층에서 데이터를 보내기 위해 사용하는 프로토콜이 TCP와 UDP이다. TCP는 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 된다. TCP의 특성은 아래와 같다. 연결형 서비스로 가상 회선 방식을 제공한다. 3 Way Handshake 방식으로 연결을 설정하고 4 Way ..
Computer Sci.
이번 포스팅에서는 라우팅에 대해 공부한 내용을 정리해 보려고 한다. 라우터(router)는 둘 이상의 네트워크와 네트워크 간 데이터 전송을 위한 경로를 설정해 주고 데이터가 해당 경로를 따라 한 네트워크에서 다른 네트워크로 통신할 수 있도록 도와주는 인터넷 접속장비이다. 내부 네트워크는 사용하는 컴퓨터 기종이나 OS, 프로토콜 등을 알 수 있기 때문에 네트워크 최적화를 이룰 수 있지만, 내부 네트워크를 외부 네트워크와 연결할 때는 정보가 제한되는데 이 때 라우터를 통해 두 네트워크를 연결한다. 라우터는 다른 기종간의 네트워크를 연결하는 기능을 하기 때문에 여러 가지 종류의 프로토콜에서 전송하는 패킷을 받아들일 수 있어야 한다. 이렇게 받아들인 패킷을 여러 경로 중 가장 효율적인 경로로 선택하여 흐름제어를..
이번 포스팅에서는 TCP/IP에 대해서 공부한 내용을 정리해 보려고 한다. 지난 포스팅에서 IP 주소에 대해서 공부를 했었다. 네트워크 안에 있는 모든 컴퓨터(노드라고도 한다)는 고유한 IP 주소를 가지고 있다. IP 주소는 2진수 32개로 이루어져 있고 우리는 2진수가 익숙하지 않으므로 10진수로 표현해서 0.0.0.0 ~ 255.255.255.255 의 형태로 IP 주소를 표현한다. 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시켜야 할 때가 있는데 이 때 사용하는 프로토콜을 ARP(Address Resolution Protocol)라고 한다. TCP/IP 4계층에서 3계층(네트워크 계층)의 IP 주소를 2계층(데이터 링크 계층)의 MAC 주소로 대응시킬 때 사용한다. arp -a 명령어를..
이번 포스팅에서는 킥스타트 2020 Round F에 대한 문제 풀이를 공유하고자 한다. 1. ATM Queue 나는 이 문제를 우선순위 큐를 가지고 풀었다. 배열에 담겨진 각각의 출금액을 A1, A2, A3, ... , An 이라고 했을 때 그 출금액의 인덱스(몇 번째에 출금을 하는지)와 1회 최대 출금액(X)으로 나눈 몫을 가지고 클래스를 만들어서 출금액 몫 오름차순, 그리고 몫이 같을 경우 인덱스 오름차순이 되게 클래스의 기준을 만들어서 우선순위 큐에 넣으면 자동으로 정렬이 되어서 출력된다. 시간복잡도는 O(NlogN) 2. Metal Hervest 이 문제는 그리디 알고리즘으로 풀었다. 추수 기간이 오버랩 되지 않는다고 해서(These time intervals do not overlap) 문제가 ..
이번 포스팅에서는 킥스타트 2020 Round E에 대한 문제 풀이를 공유하고자 한다. 이전 문제풀이 2020 Round D 2020 Round C 2020 Round B 2020 Round A 1. Longest Arithmatic 주어진 배열을 한 번 반복문을 돌면서 가장 긴 등차수열을 찾으면 쉽게 풀 수 있는 문제이다. 시간복잡도는 O(N) 2. High Buildings 이 문제는 전체 빌딩 숫자, 왼쪽에서 Andre가 바라본 건물의 숫자, 오른쪽에서 Sule가 바라본 건물의 숫자, 그리고 두 명이 같이 볼 수 있는 건물의 숫자를 입력받아 각각의 건물들이 가질 수 있는 높이의 예시를 출력하면 되는 문제이다. 만약 가능한 경우가 없으면 "IMPOSSIBLE"을 출력한다. 조금 케이스 분류를 해 주는..
이번 포스팅에서는 킥스타트 2020 Round D에 대한 문제 풀이를 공유하고자 한다. 1. Record Breaker 배열을 반복하면서 조건문을 통해 카운팅을 하면 쉽게 풀 수 있는 문제이다. 시간복잡도는 O(N) 2. Alien Piano 이 문제는 Greedy 알고리즘을 사용해서 풀었다. 먼저 배열을 통해 각각의 note의 pitch를 받아서 채워준다. 이 때 연속해서 같은 값이 나오게 되면 같은 alien piano key를 사용하게 되므로 배열에 넣어주지 않아도 된다. 이렇게 배열을 넣어 주었을 때 만약 다음과 같이 배열이 생겼다고 가정해 보자. 이 때는 연속해서 두 숫자가 같은 경우는 존재하지 않을 것이다. [1, 8, 9, 7, 6, 5, 4, 3, 2, 1, 3, 2, 1, 3, 5, 7]..
이번 포스팅에서는 킥스타트 2020 Round C에 대한 문제 풀이를 공유하고자 한다. 1. Countdown 간단한 배열 문제이다. 배열의 반복문을 돌면서 주어진 숫자부터 시작되는 카운트 다운이 총 몇 개인지를 세어 주면 된다. 한 번 배열을 순환해서 답을 구할 수 있기 때문에 시간복잡도는 O(N). 2. Stable Wall 그래프 개념을 가지고 풀어야 하는 조금 까다로운 문제이다. 나의 경우 다른 사람의 풀이를 조금 참고하면서 풀었다. 문제를 이해하는 것 부터 쉽지가 않았던 것 같다. 위상 정렬(topological sort)과 DFS를 사용하였다. N개의 폴리노미노(polynomino)가 있고 이것들이 stable한 경우, 즉 각각의 폴리노미노가 바닥에 붙어 있거나, 다른 폴리노미노 위에 올라타 ..
이번 포스팅에서는 이더넷에 대해서 알아보고자 한다. 이더넷(Ethernet)이란 이더넷은 네트워크를 만드는 하나의 방법이다. 이더넷은 CSMA/CD 프로토콜을 이용하여 통신한다. 네트워크를 만드는 방식에는 이더넷 말고도 과거에는 토큰링, FDDI, ATM 등의 방식들이 있었다. 각각의 방식마다 네트워크 방지, 랜카드 등을 다르게 준비해야 한다. 현재는 이더넷이 전 세계적으로 가장 많이 사용되는 네트워크 방식이다. CSMA/CD 방식에 대해서 조금 더 설명을 하면, Carrier Sense Multiple Access/Collision Detection의 약자이다. 이더넷 환경에서 통신을 하고 싶은 PC나 서버는 현재 네트워크 상에서 통신이 일어나고 있는지를 확인해야 한다. 네트워크 상에 있는 신호를 캐리..