이거 제가 공부하고 싶어서 적는 글입니다. 별로 도움은 되지 못 할 거에요.Data TypePythonz3비고boolBoolRef파이썬은 T/F, z3에서는 논리 조건식을 나타내는 심볼릭 객체(AST Node)intIntRefz3는 오버플로우 없이 무한 수학적 정수-BitVecRefz3은 특정 비트 크기를 가진 고정폭 정수를 제공, 비트 연산과 오버플로우 자동처리floatRealRef, FPRefz3는 유리수로 처리, FPREF는 IEEE-754 표준strSeqRef파이썬은 문자열 변경 가능, z3의 문자열은 불편, 연산을 통해 새로운 식 생성해야함list, dictArrayRefz3는 불편, 수학적 Map 형태로 사용된다. Store 연산으로 변경 시 새 배열 생성사용자 정의 클래스DatatypeRef..
현대의 TCP 혼잡제어 알고리즘은 더 진보했지만, 10가지가 넘는 변종으로 뿔뿔이 각개 약진을 하기 때문에, 뿌리가 되는 4가지의 알고리즘만 파악해볼 것이다0. Introduction1980년대 중반, 라우터를 통과하는 TCP 연결의 Throughput은 0에 가깝게 떨어지는 현상이 나온다.당시는 혼잡 제어 알고리즘이 없었고, TCP 송신자는 패킷이 유실되었다고 판단하면 재전송만 하게 되어 있었다.혼잡 발생시 라우터의 RTT가 길어지고, 일부 호스트들이 아직 네트워크 경로 상에 있는 패킷에 대한 타임아웃을 경험하며, 패킷이 잃어버려졌다고 판단하고 재전송한다. 이 경우 네트워크 안에 재전송된 패킷들이 넘쳐나며 더 많은 타임아웃과 혼잡 증가, RTT가 증가한다. 이러한 경우를 혼잡 붕괴(congestion ..
client.py더보기더보기더보기import astimport hashlibimport jsonimport queueimport secretsimport socketimport threadingimport timefrom ecdsa.curves import NIST256pfrom ecdsa.ellipticcurve import Point, PointJacobicurve = NIST256pgen = curve.generatorp = gen.order()def point2bytes(P): return P.to_bytes()def hash_func(Rp, m): if isinstance(m, str): m = m.encode() return ( int.from_byte..