전체 글 527

TCP 혼잡제어

네트워크 내에서 전송을 하면서 항상 잔잔한 상태는 아닙니다. 어떤 때에는 데이터의 수가 과도하게 증가하기도 하고 데이터가 유실되기도 합니다. 이러한 상황을 혼잡상황이라고 합니다. 그리고 TCP는 이 혼잡 상황을 방지하거나 해결하는 혼잡제어 기능을 제공합니다. TCP는 혼잡이 발생하기 전과 혼잡이 발생한 후의 제어방식이 각기 다른데 혼잡이 발생하기 전에는 slow Start와 Additive Increase방식을 사용하면서 혼잡을 회피합니다. 그리고 혼잡이 발생한 후에는 Multiplicative Decrease 방식으로 혼잡 상황을 해결합니다. TCP가 혼잡 상황을 인식하는 경우 데이터를 송신하고 타임아웃되어 재전송해야 할 경우 혹은 3개 이상의 중복된 ack를 수신했을 경우입니다. 이러한 상황을 인식하..

2022-05-31 일기

면접을 볼때마다 긴장을 하게 되는 건은 정말 어떻게 해도 고쳐지지 않는 것 같다. 좋아하는 알고리즘에 대해서 이야기 해달라고 했는데 잘알지도 못하는 flood fill 알고리즘이 좋다고 했다. 그림쟁이였어서 그런 알고리즘이 있다는 것에 신기해 했었던 정도였었고 시간복잡도까지는 알지 못했다. 그냥 합병정렬이라고 말했으면 작동원리나 시간복잡도를 말했었을 텐데 아쉽다.

일기 2022.06.01

2022-05-31 면접질문 정리

사용자 인증방식의 종류 ID/Password 가장 기본이 되는 인증 방식. 대부분 Password를 암호화하여 DB와 대조하는 방식으로 사용된다. Cookie/Session 서버에서 사용자의 정보를 세션에 기록하여 인증하는 방식 JWT . 를 구분자로 header, payload, signature 세 파트를 각각 다른 방법으로 인코딩하여 HTTP 헤더에 담아 전송하는 방식. Authorization: JWT .. Basic Auth HTTP 헤더에 : 값을 base64로 인코딩하여 담아 전송하는 방식. Authorization : Basic Base64(id:password) OAuth 인증 및 인가를 위한 오픈 프로토콜, 사용자가 Facebook이나 트위터 같은 인터넷 서비스의 기능을 다른 애플리케이..

일기 2022.05.31

TCP 에러제어

TCP는 전송된 세그먼트가 손실되거나 순서가 어긋났을 때 혹은 중복되었을 경우 이에 대한 제어나 처리를 하는 기능이 있습니다. 그 중 하나의 방법이 TCP에러제어 입니다. TCP에러제어는 먼저 에러를 검출하는 과정을 거치며 그 방법으로 CRC와 체크섬을 사용합니다. TCP헤더에는 체크섬이라는 필드가 있는데 이곳에서 헤더와 데이터에 대한 에러를 검사하는 기능을 통해 세그먼트가 전송되는 도중 에러가 발생했는지 확인합니다. 에러를 검출한 후 에러를 정정하는 과정을 거치는데 에러 정정에는 ARC(Automatic Repeat Request)방식을 사용합니다. 재전송방식에는 Stop-and-wait ARQ, Go-Back-N ARQ, Selective Repeat ARQ등의 방식이 있습니다. Stop-and-wa..

TCP 흐름제어

tcp 통신 도중 송수신지의 처리 능력이 다르기 때문에 데이터가 중간에 유실될 수 도 있습니다. 이를 방지하기 위해서 흐름 제어 기법이 TCP에서 사용됩니다. 대표적인 흐름제어 기법으로 Stop-and-wait기법과 Sliding Window기법이 있는데 Stop-and-wait기법은 비효율적이라는 단점이 있습니다. 반면 슬라이딩 윈도우 기법은 계속해서 자신의 윈도우 크기를 상대에게 알려주는 '윈도우 광고 기법'을 사용합니다. Stop-and-wait Stop-and-wait방식은 모든 패킷에 대하여 응답을 받아야만 다음 패킷을 전송하는 방식입니다. Sliding Window 수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답 없이 세그먼트를 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하는 ..

[리트코드] 35. Search Insert Position

var searchInsert = function(nums, target) { let left = 0, right = nums.length - 1, cnt = 0 while(left nums[nums.length - 1]) { return nums.length } } return cnt }; 이진 탐색을 하면서 값이 있다면 mid를 리턴하고 그렇지 않다면 몇번째 인덱스에 들어가야 하는지를 묻는 문제 배열이 정렬되어 있기 때문에 nums[nums.length - 1]이 가장 큰 값 입니다. 큰 값보다 target이 클 때는 배열의 길이를 리턴해주었습니다. 하지만 반복문을 두번이나 돌려주는 것은 좋지 않은 것 같아 좀 더 최적화를 해봤습니다. var searchInsert = function(nums, ta..

코테/스택&&큐 2022.05.29

무선 LAN

지금까지는 케이블을 통해 기기장치들을 연결하는 유선 이더넷에 학습했습니다.( 케이블을 통해 스위치와 노트북을 연결한 형태도 이더넷의 한 예시입니다. ) 이와 달리 무선 LAN은 유선 케이블을 이용하지 않으면서도 LAN을 구축할 수 있는 기술입니다. 케이블없이 간편하게 네트워크를 만들기 위해서 무선 LAN이 개발되었습니다. 무선 방식은 LAN 케이블이 꼬일 일이 없다는 장점이 있지만 유선보다 속도가 불안정하며 전파의 영향을 많이 받고 보안산의 위험도 높습니다. 무선 LAN 네트워크는 무선 LAN 액세스 포인트와 무선 LAN 클라이언트로 구성 되어 있습니다. 무선 LAN 액세스 포인트 Wireless Access Point의 약자로, WAP라고 부릅니다. 액세스 포인트를 유선 이더넷에 연결함으로써 무선 클라..